0
我幾乎沒有使用WinForms的經驗,但我確信這是一項簡單的任務。我只需要啓用和禁用基於ComboBox的SelectedIndex的文本框的Enabled屬性。使用Winforms中的控件屬性進行數據綁定:綁定啓用到組合框的狀態?
這可以在設計器中使用DataBindings完成,還是我需要編寫某種處理程序?
我幾乎沒有使用WinForms的經驗,但我確信這是一項簡單的任務。我只需要啓用和禁用基於ComboBox的SelectedIndex的文本框的Enabled屬性。使用Winforms中的控件屬性進行數據綁定:綁定啓用到組合框的狀態?
這可以在設計器中使用DataBindings完成,還是我需要編寫某種處理程序?
你可以綁定它,但你必須寫一個值 - >布爾轉換器來完成邏輯。我會建議,因爲winforms不支持ViewModel範例,你只需要使用事件處理程序,因爲你可能必須在代碼中定義數據綁定。
public void MyComboBox_SelectedIndexChanged(object sender, EventArgs args)
{
ComboBox box = sender as ComboBox;
if (box != null) return;
switch(box.Text)
{
case "Value1":
case "Value2":
case "Value3":
myTextBox.Enabled = false;
break;
default:
myTextBox.Enabled = true;
}
}
是的,我已經有很多類似這樣的代碼,但我試圖將它移向設計器,以便代碼不那麼混亂。在這種情況下,轉換是必需的。我也有類似的情況,其中Enabled綁定到CheckBox.Checked,但我似乎無法通過設計器輸入數據綁定 - 只需手動將其編碼到設計器文件中,然後顯示出來(灰顯)在設計師。 – bwerks 2010-06-17 00:07:33
爲了進一步指定,當我在控件屬性窗口的「(DataBindings)」部分打開的「格式化和高級綁定」窗口中,「綁定:」列表總是空的,我不知道如何向它添加東西。 – bwerks 2010-06-17 00:11:23