假設你有一個組合框和一個文本框。數據綁定組合框和它們之間的文本框有可能嗎?
組合框包含項目列表,我想將文本框「文本」屬性綁定到當前的組合框選擇。
在WPF中可以做到這一點,但我還沒有在WinForms中找到方法。
有沒有辦法,或者是WinForms太有限了?
注:
- 我知道我可以使用WPF來代替,但該項目已在WinForms和改寫是不可能的。
- 我在問組合框和文本框,但這可能是其他組合。
- 我正在尋找一種方法來完成它從設計時間它儘可能。
假設你有一個組合框和一個文本框。數據綁定組合框和它們之間的文本框有可能嗎?
組合框包含項目列表,我想將文本框「文本」屬性綁定到當前的組合框選擇。
在WPF中可以做到這一點,但我還沒有在WinForms中找到方法。
有沒有辦法,或者是WinForms太有限了?
注:
是可以綁定文本框的項目(Text
)所選項目的文本:
public partial class Form1 : Form {
Binding binding;
public Form1() {
InitializeComponent();
binding = new Binding("Text", comboBox1, "Text");
textBox1.DataBindings.Add(binding);
}
}
好吧,這有效,但它不能從設計器UI完成。 –
我想回答你的一個問題:*我正在尋找一種方法來從設計時間儘可能地做到這一點* ...沒有編寫自己的控件,它增加了一些設計師支持,它可能是不可能的。 WinForms有限制。 – IAbstract
我接受你的答案,因爲它更接近於技術的可行性。 –
這裏你去:這些行創建一個代表,其開始調用是否選擇的索引已在項目下更改。此後,它設置textboxs,文本屬性,從在組合框中選擇的組合框:)
TextBox txtbox = new TextBox();
ComboBox cob = new ComboBox();
cob.SelectedIndexChanged += new EventHandler(delegate(object sender, EventArgs e) { if (cob.SelectedIndex > -1) txtbox.Text = cob.Items[cob.SelectedIndex].ToString(); });
如果沒有選擇項目,這將導致異常。 –
只需一秒鐘。更新它比.... thada! =)完成 – dotTutorials
如果您將它們綁定到同一個對象(實現正確的可觀察接口),那麼更改通知應該會導致該值自動傳播到對象,然後傳遞給另一個控件,而無需額外的代碼。 –
@Ben,雖然在WinForms中有數據綁定功能,但它並不像WPF那樣舒適。我更喜歡與Machinegon的建議相同的解決方案。 –
@BenVoigt:你不需要中間對象。我認爲我可能需要使用一箇中間對象(某種內部DTO),但是如果一個簡單的事件就足夠了,那會是什麼意思呢?我能夠弄清楚用於「綁定」對象的屬性組合。 – IAbstract