У меня есть определение DataGrid следующим образом:WPF DataGrid не обновляется
<DataGrid Grid.Row="0" Grid.Column="0" x:Name="s" MaxHeight="300"
ItemsSource="{Binding MsgCollection, IsAsync=False, Mode=OneTime}">
<DataGrid.Columns>
<DataGridTextColumn x:Name="BankId"
Header="Bank Nr."
Binding="{Binding BankId}"
DisplayIndex="0" />
<DataGridTextColumn x:Name="MessageB"
Header="Message B"
Binding="{Binding MessageB}"
DisplayIndex="1" />
</DataGrid.Columns>
</DataGrid>
модели представления кода выглядит следующим образом:
public class AwesomeDataViewModel : ViewModelBase
{
...
public ObservableCollection<Bank> MsgCollection
{
get
{
return m_Msgs;
}
set
{
m_Msgs = value;
OnPropertyChanged("MsgCollection");
}
}
AwesomeRandomMethode(){
...
// bankCollection contains 200 items
MsgCollection = new ObservableCollection<Bank>(bankCollection);
OnPropertyChanged("MsgCollection");
}
}
AwesomeRandomMethode()
вызывается позже в программе, чтобы добавлять элементы в dataGrid. Я уведомляю об изменении, вызывая OnPropertyChanged
, но ничего не происходит.
У меня есть кнопка, которая использует ее, и она получает уведомление.
Однако, если я переключаю вкладку, внезапно обновляется datagrid!
Im ищет решение, которое не нарушает принципов MVVM
Бог Проклятье, я потратил несколько часов, чтобы решить этот глупый "Mode = TwoWay" ТНХ, – RayOldProf
Это случается лучший из нас. –