Listbox绑定到ObservableCollection奇怪的问题MVVM WPF

时间:2011-10-05 14:13:59

标签: wpf binding mvvm listbox observablecollection

这是我在这里发布的第一个问题...... 我有一个用户界面,其中包含带有预加载项目的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);
}

... 我有一个方法,像这样

添加一个项目到ObservableCollection
void AddFunctionExecute()
{
    RolFunciones.Add(new RolFuncion() { Descripcion = "dummy" });
}

有人有同样的问题吗?

0 个答案:

没有答案