当已进行选择时,冻结对列表框项的选择
本文关键字:选择 列表 冻结 行选 | 更新日期: 2023-09-27 18:34:54
我需要能够"冻结"列表框选择,直到我清除用户对项目的选择。
我似乎找不到任何例子,需要正确方向的小指针。
我在 MVVM 中,所以我可能想触发一个中继命令,并且仅在 SelectedIndex 为 -1 时才启用它。
我该怎么做?
您可以尝试使用启用属性,如下所示:
<Listbox Enabled=False />
如果需要,可以在代码中使用另一个属性来bingint此属性。
Property IsListBoxEnable As Boolean
<Listbox Enabled="{Binding IsListBoxEnable, Mode=TwoWay}" />
在你的代码中,你只需修改IsLisBoxEnable的值。
一种方法是将数据绑定 IsEnabled 到 SelectedIndex,然后有一个转换器,该转换器仅在 SelectedIndex 为 -1 时才返回true
<Listbox IsEnabled={Binding RelativeSource={RelativeSource Self},
Path=SelectedIndex, Converter=YourConverter} />
有关编写YourConverter
的更多信息,请参阅此页面
在视图模型中,您可以拥有 SelectedIndex 的属性,然后将其设置为 -1,并且应该再次启用列表框
如果您不想完全禁用列表框,则可以在某些情况下使用datavalidation显示错误消息,这是一个开始的好地方