这是我在这里发布的第一个问题...... 我有一个用户界面,其中包含带有预加载项目的ListBox,GUI允许用户向该列表框添加或删除项目。非常简单。 问题是,当我在ListBox中选择项目时,如果它们在“运行时”中添加到ObservableCollection中,我就无法“取消选择”它们(默认情况下加载的项目工作正常!) 我有一个ListBox绑定到ObservableCollection,如下所示:
<ListBox ItemsSource="{Binding RolFunciones}"
SelectionMode="Single"
DisplayMemberPath="Descripcion"
SelectedItem="{Binding SelectedRolFunciones, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Width="600"
Height="300" />
在我的ViewModel中,我有:
ObservableCollection<RolFuncion> mRolFunciones;
public ObservableCollection<RolFuncion> RolFunciones
{
get { return mRolFunciones; }
set { mRolFunciones = value; OnPropertyChanged(() => RolFunciones); }
}
RolFuncion mSelectedRolFunciones;
public RolFuncion SelectedRolFunciones
{
get { return mSelectedRolFunciones; }
set { mSelectedRolFunciones = value; OnPropertyChanged(() => SelectedRolFunciones); }
}
...
// Constructor
public RolViewModel()
{
RolFunciones = new ObservableCollection<RolFuncion>();
RolFunciones.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(RolFunciones_CollectionChanged);
}
void RolFunciones_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
OnPropertyChanged(() => RolFunciones);
}
... 我有一个方法,像这样
添加一个项目到ObservableCollectionvoid AddFunctionExecute()
{
RolFunciones.Add(new RolFuncion() { Descripcion = "dummy" });
}
有人有同样的问题吗?