如何解决在.Net Core中添加值后如何刷新WPF数据网格
按下按钮添加新值后,我需要刷新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 举报,一经查实,本站将立刻删除。