在.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 (将#修改为@)