编辑:当我“Show.Dialog”一个新的WPF窗口并在新窗口中使用Xaml时,才会出现此问题。如果我将Xaml复制到我的原始窗口,LIST会正确绑定而不使用静态属性(和更新)!我可以用这个,但这是正常的吗?是否有正确的方法让新的Windows正常工作?
WorkOrderWindow WorkOrderWindow = new WorkOrderWindow();
WorkOrderWindow.ShowDialog();
我将ListBox绑定到List。当我创建List静态并注释掉“NotifyPropertyChanged”时,它可以正常工作,但我需要NotifyPropertyChanged并且无法在静态上实现NotifyPropertyChanged。如果我将我的列表更改为非静态,我的ListBox中没有任何项目。
从“静态”更改并注释掉“NotifyPropertyChanged”是填充项目的ListBox之间的区别。
我不知道为什么会这样。任何人都可以向我解释并提供解决方案吗?感谢。
这可以按预期工作,(减去更新UI的能力):
private static List<string> _WorkOrderGroupsList;
public static List<string> WorkOrderGroupsList
{
get { return _WorkOrderGroupsList; }
set
{
_WorkOrderGroupsList = value;
//NotifyPropertyChanged("WorkOrderGroupsList");
}
}
这不起作用:
private List<string> _WorkOrderGroupsList;
public List<string> WorkOrderGroupsList
{
get { return _WorkOrderGroupsList; }
set
{
_WorkOrderGroupsList = value;
NotifyPropertyChanged("WorkOrderGroupsList");
}
}
WPF:
<ListBox x:Name="myListBox" Grid.Row="2" Grid.Column="0" ItemsSource="{Binding WorkOrderGroupsList, UpdateSourceTrigger=PropertyChanged}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding SelectedItemChangedCommand}"
CommandParameter="{Binding ElementName=myListBox, Path=SelectedItem}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</ListBox >