Мне нужно, чтобы одна кнопка включалась только тогда, когда два других свойства были установлены на значение, отличное от нуля. Я мог это сделать вручную, но мне интересно, есть ли способ сделать это, используя класс привязки .net. Я использую .net 4.0, работающий с Windows Forms.Binding Button.Enabled для более чем одного свойства
ответ
Нет. Я не верю, что это возможно в приложении WinForms. Связывание с WinForms - это сопоставление от 1 до 1 между исходным объектом и свойством члену данных в целевом объекте.
Простой способ обойти это, однако, состоит в том, чтобы создать третье свойство, которое просто выполняет проверку, которую вы пытаетесь сделать, и создать привязку к этому свойству.
public object Property1 {get; set;}
public object Property2 {get; set;}
public bool Property3
{
get { return Property1 != null && Property2 != null; }
}
И тогда я предполагаю, что мне нужно реализовать функцию Property1_or_Property2Changed() ', чтобы все знали, что она изменилась, чтобы кнопка могла обновить ее свойство« Включено »? – Juan
Привяжите свойство Button.IsEnabled и используйте IMultiValueConverter ... который вы можете вернуть true только тогда, когда ваши значения не равны нулю.
<Button.IsEnabled>
<MultiBinding Converter="{StaticResource MyConverter}">
<Binding Property1 />
<Binding Property2 />
</MultiBinding>
</Button.IsEnabled>
Извините, я не использую WPF. Виноват. – Juan
Какие рамки вы используете? WPF, ASP, Winforms и т. Д. – Val
Только что отредактировал мой вопрос. – Juan