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