У меня (наиболее вероятно) очень простой вопрос к вам относительно таблицы данных WPF, который я связал с ObservableCollection и который, к сожалению, не обновляется, когда я добавляю элементы в эту коллекцию.
Это мой взгляд вкл. Датагрид:
<UserControl.Resources>
<local:SinglePackTransactions_ViewModel x:Key="vm"/>
</UserControl.Resources>
...
...
...
<DataGrid x:Name="DataGridRequestPacks_SinglePack" AutoGenerateColumns="False" Grid.Row="1" Width="700" Margin="30"
ItemsSource="{Binding SinglePackResultList, Source={StaticResource vm}}" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Created" Width="Auto" Binding="{Binding Created}"/>
<DataGridTextColumn Header="Product Code" Width="Auto" Binding="{Binding ProductCode}"/>
</DataGrid.Columns>
</DataGrid>
Когда я нажимаю кнопку (Command = "SendRequestCmd"), я добавляю элемент моего пользовательского класса ("Pack") в свой ObservableCollection SinglePackResultList.
В конструкторе моей ViewModel у меня это здесь:
SinglePackResultList = new ObservableCollection<Pack>();
SendRequestCmd = new RelayCommand((object z) =>
{
try
{
SinglePackResultList.Add(SOAPRequest.SOAPRequestHandler(new Pack() {Created = (DateTime.Now).ToShortDateString(), ProductCode = ProductCode_SinglePack, BatchID = BatchID_SinglePack, BatchExpiry = BatchExpiry_SinglePack, PackSerialnumber = SerialNumber_SinglePack, PackTransaction = Transaction_SinglePack.TransactionID }));
}
catch (Exception)
{
return;
}
},
CanExecute);
Когда я устанавливаю точку отладки, я вижу, что после каждого нажатия кнопки есть дополнительный элемент в моем ObservableCollection SinglePackResultList - так что это работает.
Но, к сожалению, Датагрид остается пустым. Я пытался добавить NotifyPropertyChanged("SinglePackResultList")
сразу после SinglePackResultList.Add(...)
, но это не сработало.
Я полностью потерян, как я могу заставить это работать. : - (