c#Wpf数据网格

时间:2018-05-07 16:22:47

标签: c# wpf

是否可以更新行并再次显示它们, 我遇到了一个问题,因为如果我立即向表中添加3个项目,那么它们显示一切正常,但是当我稍后向数组中添加元素并显示在网格中时,未添加下一个元素

public partial class MainWindow : Window
{
    public DateTime start;

    public DateTime end;

    public List<Action> zadania = new List<Action>();

    public MainWindow()
    {
        InitializeComponent();
        var urlop = new Action(); 
    }
     private void DatePicker_SelectedDateChanged(object sender,
        SelectionChangedEventArgs e)
    {
        // ... Get DatePicker reference.
        var picker = sender as DatePicker;

        // ... Get nullable DateTime from SelectedDate.
        DateTime? date = picker.SelectedDate;
        if (date == null)
        {
            // ... A null object.
            this.Title = "No date";
        }
        else
        {
            // ... No need to display the time.
            this.Title = date.Value.ToShortDateString();
            start = date.Value;
        }
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        //add element to table
        zadania.Add(new Action(start, new DateTime(2008, 6, 1, 8, 30, 52), textbox.Text));
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        //show in datagridview  
        DataGrid.ItemsSource = zadania;
    }
}

2 个答案:

答案 0 :(得分:0)

这是因为zadaniaList<Action>List<T>没有实现INotifyCollectionChanged界面。

在您致电AddRemove时,源集合必须实现此界面,以便在视图中自动添加或删除项目。

只有一个内置集合可以实现此接口,即ObservableCollection<T>类。

因此,如果您只是更改源集合的类型,那么您应该没问题:

public ObservableCollection<Action> zadania = new ObservableCollection<Action>();

答案 1 :(得分:-1)

每次添加项目时,都必须刷新数据网格项目。

static/