gpt4 book ai didi

如果列表框具有选择项,则 WPF 在其他控件上绑定(bind) IsEnabled

转载 作者:行者123 更新时间:2023-12-02 08:58:45 25 4
gpt4 key购买 nike

我有一个包含 2 列的网格,第 0 列中有一个列表框,主网格第 1 列的辅助网格中有许多其他控件。

如果通过绑定(bind)在列表框中选择了项目,我希望仅启用(或可能可见)此控件。我尝试了一个组合框:

IsEnabled="{Binding myList.SelectedIndex}"

但这似乎不起作用。

我错过了什么吗?像这样的东西应该工作吗?

谢谢

最佳答案

为此,您需要一个 ValueConverterThis article详细描述它,但总结是你需要一个实现 IValueConverter 的公共(public)类。在 Convert() 方法中,你可以这样做:

if(!(value is int)) return false;
if(value == -1) return false;
return true;

现在,在您的 XAML 中,您需要执行以下操作:

<Window.Resources>
<local:YourValueConverter x:Key="MyValueConverter">
</Window.Resources>

最后,将您的绑定(bind)修改为:

IsEnabled="{Binding myList.SelectedIndex, Converter={StaticResource MyValueConverter}"

你确定你不是故意的

IsEnabled="{Binding ElementName=myList, Path=SelectedIndex, Converter={StaticResource MyValueConverter}"

虽然?您不能隐式地将元素的名称放在路径中(除非 Window 本身就是 DataContext,我猜)。绑定(bind)到 SelectedItem 并检查 not null 也可能更容易,但这实际上只是偏好。

哦,如果您不熟悉备用 xmlns 声明,请在 Window 顶部添加

xmlns:local=

VS 会提示您提供各种可能性。您需要找到与您放入 valueconverter 的命名空间相匹配的命名空间。

关于如果列表框具有选择项,则 WPF 在其他控件上绑定(bind) IsEnabled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2953095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com