如何讓WPF錯誤模板出現在WPF中的UserControl中的控件上?在WPF中的UserControl中的控件上顯示驗證錯誤模板
我有含有兩個標籤,兩個文本框,和一個CheckBox一個用戶控件。其中一個TextBoxes表示實體的名稱,並且它綁定到名稱屬性,而不是由我的ViewModel公開的Model屬性(它是我的Window的DataContext)。 Model類實現了IDataErrorInfo接口,並且通過單元測試證實,當Name爲空時,通過屬性索引器實現返回錯誤。我綁定了支持我的UserControl中名稱文本框的依賴項屬性,當遇到驗證錯誤時,WPF錯誤模板在整個UserControl周圍放置一個紅色邊框,而不僅僅是名稱文本框。
到該用戶控件的名稱字段的結合如下。
<vc:MyUserControl ItemName="{Binding Model.Name, ValidatesOnDataErrors=True}" />
我的UserControl和後備DependencyProperty的簡化版本如下。
<UserControl>
<Grid>
<TextBox Text="{Binding ItemName}" />
</Grid>
</UserControl>
public partial class MyUserControl: UserControl
{
public static readonly DependencyProperty ItemNameProperty =
DependencyProperty.Register(
"ItemName",
typeof(string),
typeof(MyUserControl),
new FrameworkPropertyMetadata(string.Empty, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault)
);
public string ItemName
{
get { return (string)GetValue(ItemNameProperty); }
set { SetValue(ItemNameProperty, value); }
}
}
我發現關於這個問題迄今已全部在問候的Silverlight或使用轉換器不顯示紅色邊框(其中沒有任何意義,我)的信息。這些信息都是在stackoverflow上找到的。
有人可以用WPF解決這個問題嗎?我忽略了一些明顯的東西?
相關的問題[這裏](http://stackoverflow.com/q/7808986/620360)和[這裏](http://stackoverflow.com/q/1198342/620360) – LPL 2013-02-19 19:13:18
謝謝,LPL。在我對這個問題的研究中,我看到了這兩個問題。在第二個鏈接上接受的答案是使用我在我的問題中引用的轉換器。這對我來說似乎很不對勁。第一個問題中接受的答案似乎也不適用於我。 – CoderDawson 2013-02-19 21:25:19