Dav*_*man 13 data-binding wpf listbox
我有一个ListBox
我想要的WPF
ListBox
和中启用多项选择这两个要求似乎不相容.我的视图模型有一个ObservableCollection<T>
绑定到此ListBox 的属性; 我在XAML中设置了从属性到ListBox.SelectedItems
属性的绑定.当我编译时,我得到一个错误,说该SelectedItems
属性是只读的,无法从XAML设置.
我绑定到错误的控制属性?有没有办法将XAML中的多选ListBox绑定到视图模型集合属性?谢谢你的帮助.
Ara*_*and 22
你可以做些什么来解决这个问题:
在列表中显示的项目上创建IsSelected属性.我假设这些也由视图模型表示.所以添加一个额外的属性不应该是一个戏剧.如果它们只是业务对象,请考虑使用包装类将它们无痛地包装在视图模型项中(无耻的插件 - 这是一个这样的系统.我每天使用它来包装我的业务对象)
使用项容器样式将列表框项的IsSelected属性绑定到正在显示的项的IsSelected属性,如此
<ListBox.ItemContainerStyle>
<!-- This Style binds a ListBoxItem to a the ViewModelItem. -->
<Style
TargetType="{x:Type ListBoxItem}">
<Setter
Property="IsSelected"
Value="{Binding IsSelected, Mode=TwoWay}" />
</Style>
</ListBox.ItemContainerStyle>
Run Code Online (Sandbox Code Playgroud)
(可能需要基于样式的属性,不确定)
现在,只要选择了列表框项,您的视图模型就会知道它并可以根据需要更新其内部集合.
归档时间: |
|
查看次数: |
14537 次 |
最近记录: |