我有一个绑定到ObservableCollection的简单数据网格。它应该只显示一列。
XAML看起来像这样:
<DataGrid IsReadOnly="True" ItemsSource="{Binding InputList, UpdateSourceTrigger=PropertyChanged}"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Parameter Name" Binding="{Binding Name, UpdateSourceTrigger=PropertyChanged}">
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
在我的ViewModel中,ObservableCollection如下所示:
public ObservableCollection<InputParameter> InputList { get; set; }
InputParameter包含我想要显示的字符串属性“Name”。 如果我在构造函数中添加一些参数,如下所示:
InputParameter parameter = new InputParameter("test1");
InputList.Add(parameter);
显示该项目,但是如果我在某个事件上调用的方法中执行相同的操作并且列表未更新。我在这里缺少什么?
这是应该在PropertyChanged事件上向集合添加项目的代码,但显示不会更新:
Manager.PropertyChanged += (obj, e) =>
{
if(e.PropertyName == "Inputs")
{
foreach (InputParameter param in Manager.Inputs)
{
parameter = new InputParameter("test2");
InputList.Add(parameter);
// InputList.Add(param);
}
};
};