2010-12-23 84 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。

相关问题