是否可以更新行并再次显示它们, 我遇到了一个问题,因为如果我立即向表中添加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;
}
}
答案 0 :(得分:0)
这是因为zadania
是List<Action>
而List<T>
没有实现INotifyCollectionChanged界面。
在您致电Add
和Remove
时,源集合必须实现此界面,以便在视图中自动添加或删除项目。
只有一个内置集合可以实现此接口,即ObservableCollection<T>
类。
因此,如果您只是更改源集合的类型,那么您应该没问题:
public ObservableCollection<Action> zadania = new ObservableCollection<Action>();
答案 1 :(得分:-1)
每次添加项目时,都必须刷新数据网格项目。
static/