将按钮的.Enabled属性绑定到多个属性上

4

当两个其他属性被设置为非空值时,我需要启用一个按钮。我可以手动完成这个操作,但是我想知道是否有一种使用.NET的Binding类来完成这个操作的方法。我正在使用.NET 4.0并且在Windows Forms中工作。


你使用哪个框架?WPF、ASP、Winforms等。 - Val
刚刚编辑了我的问题。 - Juan
2个回答

3

我不认为在WinForms应用程序中可以实现这一点。 WinForms绑定是将源对象和属性与目标上的数据成员之间进行一对一映射。

一个简单的解决方法是创建第三个属性,该属性仅执行您尝试进行的检查,并创建到该属性的绑定。

public object Property1 {get; set;}
public object Property2 {get; set;}
public bool Property3
{
    get { return Property1 != null && Property2 != null; }
}

然后我想我需要实现一个 Property1_or_Property2Changed() 函数来让每个人都知道它已经改变了,这样按钮就可以更新它的 Enabled 属性了? - Juan

0
将您的Button.IsEnabled属性绑定,并利用IMultiValueConverter,您可以在该转换器中仅在您的值不为空时返回true。
<Button.IsEnabled>
    <MultiBinding Converter="{StaticResource MyConverter}">
        <Binding Property1 />
        <Binding Property2 />
    </MultiBinding>
</Button.IsEnabled>

1
抱歉,我没有使用WPF。我的错。 - Juan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接