问题描述
按下按钮添加新值后,我需要刷新WPF数据网格。我使用了单独的Dataservice类来管理服务。我使用了ObservableCollection将数据加载到网格中。
这是DataGrid的代码:
<DataGrid x:Name="dataGridtag" Margin="55,134,132,93" AlternatingRowBackground="AliceBlue" CanUserAddRows="False" AutoGenerateColumns="False" IsReadOnly="True" ItemsSource="{Binding TagDataList}">
<DataGrid.Columns>
<DataGridTextColumn Header="Id" Binding="{Binding TagId}" Width="150"/>
<DataGridTextColumn Header="Tag Name" Binding="{Binding TagName}" Width="300"/>
<DataGridTemplateColumn>
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="Action" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDeFinitions>
<ColumnDeFinition Width="*" />
<ColumnDeFinition Width="*" />
</Grid.ColumnDeFinitions>
<Grid.RowDeFinitions>
<RowDeFinition />
</Grid.RowDeFinitions>
<Button x:Name="EditButton" Content="Edit" Grid.Column="0" Grid.Row="0" Click="EditButton_Click" Width="100"></Button>
<Button x:Name="DeleteButton" Content="Delete" Grid.Column="1" Grid.Row="0" Click="DeleteButton_Click" Width="100"></Button>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
这是我用于加载dataGrid并通过单击按钮添加值的类:
public partial class Tab_Main_Tags : UserControl
{
Tag tag = new Tag();
public ObservableCollection<Tag> TagDataList { get; private set; }
public List<Tag> TagList { get; private set; }
public Tab_Main_Tags()
{
InitializeComponent();
this.DataContext = this;
TagDataList = new ObservableCollection<Tag>();
_ = this.load();
}
private async void btnSave_Click(object sender,RoutedEventArgs e)
{
var tagDataService = new TagDataService(new EntityFramework.TiMetableManagerDbContext());
if (textBoxtag.Text != "")
{
tag.TagName = textBoxtag.Text;
await tagDataService.AddTag(tag);
}
else
{
MessageBox.Show("Insert a Tag!!");
}
}
public async Task load()
{
TagDataService tagDataService = new TagDataService(new EntityFramework.TiMetableManagerDbContext());
TagList = await tagDataService.GetTags();
TagList.ForEach(e =>
{
Tag l = new Tag();
l.TagId = e.TagId;
l.TagName = e.TagName;
TagDataList.Add(l);
});
}
}
这是我的数据服务类:
public class TagDataService
{
private readonly TiMetableManagerDbContext _context;
public TagDataService(TiMetableManagerDbContext context)
{
_context = context;
}
public async Task<bool> AddTag(Tag tag)
{
_context.Tags.Add(tag);
int result = await _context.SaveChangesAsync();
if (result > 0)
{
return true;
}
return false;
}
public async Task<List<Tag>> GetTags()
{
return await _context.Tags.ToListAsync();
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)