2010-12-23 56 views
1

我想要做的事很簡單。我有一個通用的對象列表。假設對象類包含一個名爲Height的屬性。我想要做的是將用戶界面中的文本框文本與此列表綁定,當我更改文本框中的值時,列表中的所有對象都會更新其高度值。我是WPF新手,我研究了MVVM模式,我可以做簡單的數據綁定,但我不知道如何做到這一點:'(謝謝!WPF將文本框綁定到通用列表中所有項目的屬性

回答

2

我會有你的ViewModel的屬性它是綁定到文本框的文本值。當文本屬性改變(即在ObjectHeight的set),做你的驗證,以檢查它是一個有效的值,然後遍歷對象列表(我猜你'從你的模型中獲取Height屬性)

+0

而不是在viewmodel中創建一堆屬性,我可以創建一個類,該類從列表中使用的對象類派生並在那裏執行工作。因爲有很多值綁定到,而不僅僅是高度:( – muku 2010-12-23 14:55:10

0

你將不得不以另一種方式進行綁定 - 也就是說,不要使用xaml綁定到單個對象的Height屬性,而是使用代碼隱藏添加綁定到列表中的每個對象。

像這樣(未經):

Binding binding = new Binding("Text"); 
binding.source = TheTextBox; 
binding.Mode = BindingMode.OneWay; 
foreach (var o in myList) 
o.setBinding(TheElementType.HeightProperty, binding); 

也許你必須創建每個目標對象的一個​​綁定對象;而Object的Height屬性可能必須是DependencyProperty。

相關問題