2009-08-04 92 views
3

我有一个WPF MVVM应用程序。在视图中我有一个多选ListBox。在ViewModel中,我有一个列表中选定项目的属性。WPF ListBox +绑定+ IDataErrorInfo =?

使用类似于this问题答案中的技巧,我可以将我的财产绑定到ListBox

但我也想通过IDataErrorInfo做数据验证。我想要做的就是检查用户是否至少在列表中选择了一个项目。将ValidatesOnDataErrors=True添加到绑定不起作用。

有没有什么办法有一个多选列表框,这是IDataErrorInfo的数据绑定?

+0

你可以发布你的代码吗?定义“不起作用”?你有错误吗?调用IDataErrorInfo的实例吗? – 2009-08-05 07:10:06

回答

-1

即使它是多选列表框可以绑定的SelectedItem

SelectedItem="{Binding FakeSelectedItem, ValidatesOnDataErrors=True}" 

,然后做一个验证时,该属性的变化。

PS
对于我使用这个解决方案MVVM Multiselect Listbox

0

如果您使用的是行为与ListBox的选择项绑定视图模型的列表,手动更新后的绑定添加/删除项目(S)的结合:

var binding = BindingOperations.GetBindingExpression(this, SelectedItemsListBoxBehavior.SelectedItemsProperty); 
if (binding != null)binding.UpdateSource(); 
+0

binding.ValidateWhithoutUpdate()可用,但似乎没有做这项工作。 – Fanch 2014-12-12 14:23:02