我有一个用户控件,它是一个文本框和两个按钮的组合。我已经设置了Dependency属性,以便它正确地绑定到我的模型。问题是当我有验证错误时,“红色”边框包装文本框和按钮。
我想改变行为,以便在出现错误时,只有内部文本框有红色边框,但无法弄清楚如何执行此操作。
[试图张贴图片,但我不够高:-(]
我的文本框将其作为绑定(在用户控件内部,它包含在一个带有按钮堆栈面板的网格中,因为它们是动态的)
Codebehind
private static DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(UserControl));
XAML文件
<Textbox Grid.Column="0"
Text="{Binding Text, Mode=TwoWay, StringFormat={StaticResource CommaFormat}
, RelativeSource={RelativeSource FindAncestor
, AncestorType={x:Type UserControl}}, ValidatesOnDataErrors=True}"
x:Name="txt"
MaxLength="6" Height="22" Width="65" VerticalAlignment="Top" />
以我的主要形式..我有这个xaml绑定
<WeightTextbox Grid.Column="1" Grid.Row="2" Margin="5,0"
Text="{Binding SelectedDocument.Weight1,
Mode=TwoWay,
ValidatesOnDataErrors=True,
TargetNullValue={x:Static sys:String.Empty}}" />
注意:这会在单个窗体上显示5次,以便我可以为文档收集不同的权重。
我试过搜索,但一直找不到任何东西。
编辑(最后足够高的代表添加图像)
答案 0 :(得分:0)
昨天终于有一个啊哈时刻,所以我发布这个以防万一有人来搜索。在我的WeightTextbox中添加了一个名为“Required”的依赖属性
private static DependencyProperty RequiredProperty = DependencyProperty.Register("Required", typeof(bool), typeof(xagDateTimeCustom));
public Boolean Required
{
get
{
return (bool)GetValue(RequiredProperty);
}
set
{
bool oldValue = Required;
SetValue(RequiredProperty, value);
DependencyPropertyChangedEventArgs e = new DependencyPropertyChangedEventArgs(RequiredProperty, oldValue, value);
OnPropertyChanged(e);
}
}
在我的主窗体中,我现在执行以下操作..(设置了新的必需属性,并且ValidatesOnDataErrors设置为False
<WeightTextbox Grid.Column="1" Grid.Row="2" Margin="5,0"
Required=True
Text="{Binding SelectedDocument.Weight1,
Mode=TwoWay,
ValidatesOnDataErrors=False,
TargetNullValue={x:Static sys:String.Empty}}" />
然后在我的自定义控件中,我实现了IDataErrorInfo,它现在似乎正常工作。