2010-10-23 79 views
4

我需要一个按钮才能启用只有当两个其他属性已被设置为非空值。我可以手动,但我不知道是否有一种方法来使用.net的绑定类。我正在使用.NET 4.0与Windows窗体一起工作。绑定Button.Enabled对多个属性

+0

你在用什么框架? WPF,ASP,Winforms等。 – Val 2010-10-23 00:33:51

+0

刚编辑我的问题。 – Juan 2010-10-23 00:37:42

回答

3

不,我不相信这是可能的一个WinForms应用程序。 WinForms绑定是源对象和属性到目标上的数据成员之间的1对1映射。

解决这个问题的简单方法是创建一个第三个属性,它仅仅执行您正在尝试创建的检查并创建对该属性的绑定。

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

然后我想我需要实现一个'Property1_or_Property2Changed()'函数让大家知道它已经改变了,所以按钮可以更新它的'Enabled'属性? – Juan 2010-10-27 15:57:24

0

绑定您的Button.IsEnabled属性并使用IMultiValueConverter ...只有当您的值不为null时,才可以返回true。

<Button.IsEnabled> 
    <MultiBinding Converter="{StaticResource MyConverter}"> 
     <Binding Property1 /> 
     <Binding Property2 /> 
    </MultiBinding> 
</Button.IsEnabled> 
+1

对不起,我没有使用WPF。我的错。 – Juan 2010-10-23 00:38:34