我在WPF中有一个树视图,我通过来自视图模型的caliburn micro绑定节点。
我想设置一个简单的验证:当没有选择节点时,树视图应该处于错误状态并显示消息,否则不显示。对于textbox或combobox等其他控件,我只需在绑定时在视图中设置验证属性,并为viewmodel实现IDataErrorInfo接口。但是我不知道如何用树视图来做这件事。
我的方法直到现在:
我为树创建验证规则,以检查是否选择了树视图节点。规则已执行,似乎有效,但我不知道如何在Xaml中激活验证。如何激活树视图的验证?
查看:
<TreeView Name="Items" />
视图模型:
public List<TreeViewItem> Items
{
get { return mItems; }
set
{
mItems= value;
NotifyOfPropertyChange(() => Items);
}
}
public string this[string columnName]
{
get
{
if ((columnNames == "Items") && !Items.Any(x => x.IsSelected))
{
return "Error..";
}
...
}
}
答案 0 :(得分:1)
在视图模型中实施indent
界面,并在视图中为INotifyDataErrorInfo
定义Validation.ErrorTemplate
。
查看:强>
TreeView
查看型号:
<TreeView Name="Items" Margin="10">
<Validation.ErrorTemplate>
<ControlTemplate>
<Grid>
<Border BorderThickness="1" BorderBrush="Red">
<AdornedElementPlaceholder />
</Border>
</Grid>
</ControlTemplate>
</Validation.ErrorTemplate>
</TreeView>