У меня есть простая сетка данных, привязанная к 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 содержит строковое свойство «Имя», которое я хочу отобразить. Если я добавлю некоторые параметры в конструктор следующим образом:
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);
}
};
};
Name
- person Mujahid Daud Khan   schedule 15.05.2014