1
A
回答
1
這不是你應該考慮的方式。 WPF鼓勵使用MVVM,所以你應該準備好你的VM類,以便它具有你應該綁定到的適當屬性(也可能是模型類)。不要將邏輯/驗證邏輯放入GUI中。
1
爲什麼不考慮使用命令綁定?見/嘗試例如下面簡單的例子:
<Window.CommandBindings>
<CommandBinding Command="Save" CanExecute="CommandBinding_CanExecute" Executed="CommandBinding_Executed" />
</Window.CommandBindings>
<StackPanel>
<TextBox Name="TextBox1"/>
<Button Content="Save" Command="Save"/>
</StackPanel>
的CommandBinding有一個屬性[CanExecute],您可以使用在代碼啓用/禁用您的按鈕後面:
private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = (this.TextBox1.Text == "test");
}
private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e)
{
// put your command-logic here
}
在這個例子中,你必須輸入值「test」來啓用按鈕並執行你的命令邏輯。
0
綁定按鈕命令(例如保存命令)
綁定TextBox.Text一個屬性(如string MyTextBoxText
)
綁定ComboBox的selectedItem設置爲一個屬性(或者甚至是的ItemSource)(例如object MySelectedItem
)
命令的CanExecute有這樣的代碼:
return !string.IsNullOrWhiteSpace(MyTextBoxText) && (MySelectedItem != null);
0
上要啓用/禁用
0按鈕使用MultiBinding和轉換另一種方式來做到這一點您需要創建IMultiValueConverter interface的實現,該實現測試ComboBox.SelectedValue和TextBox.Text屬性的值,並返回true或false,然後將其分配給Button.IsEnabled屬性。這裏是一個可行的簡單轉換,但是你要確保定製一個您的特定需求:
public class MyMultiValueConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (values == null)
return false;
return values.All(c => c is String ? !String.IsNullOrEmpty((string)c) : c != null);
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
雖然這種方法確實可行,我傾向於用,你應該使用時,命令其他答案同意可能通過多重綁定和轉換器。
相關問題
- 1. 基於WPF中多個控件的值啓用/禁用控件
- 2. 如何啓用或禁用基於angularjs中的值的按鈕?
- 3. 禁用按鈕點擊,並在其他按鈕啓用
- 4. 如何基於vba中的條件/文本更改來啓用/禁用按鈕?
- 5. 如何禁用單選按鈕控件並啓用文本
- 6. 基於哪個控件擁有焦點的禁用/啓用按鈕
- 7. 如何通過點擊另一個按鈕來啓用禁用的按鈕?
- 8. 啓用/禁用基於單選按鈕的功能按鈕
- 9. 如何啓用基於文本框禁用的按鈕? c#
- 10. 如何啓用/禁用基於方法返回的WPF按鈕
- 11. 如何禁用1按鈕,但保持其他人啓用
- 12. 讓一個控件基於另一個控件啓用/禁用
- 13. 禁用基於json值的按鈕
- 14. 基於其他值禁用複選框
- 15. 啓用/禁用基於單選按鈕提交按鈕
- 16. 如何基於複選框啓用/禁用提交按鈕?
- 17. 基於文本框值啓用/禁用命令按鈕
- 18. c#啓用基於mysql值的按鈕
- 19. Xcode:基於UITextField值的啓用按鈕
- 20. 當我按下angularjs中的一個按鈕時,如何禁用其他按鈕
- 21. 禁用基於條件的HTML按鈕
- 22. 多個javascript按鈕(啓用/禁用)
- 23. 基於其他按鈕的條件設置按鈕的條件
- 24. 如何禁用提交按鈕,直到按下其他按鈕?
- 25. 當我按下按鈕時,其他按鈕如何禁用?
- 26. 如何啓用禁用基於頁面控件的驗證器?
- 27. 如何在NumericUpDown控件中的值大於某個數字時禁用按鈕?
- 28. 啓用/禁用基於另一個單選按鈕
- 29. 在C中禁用並啓用按鈕#
- 30. 基於輸入值啓用按鈕