2015-06-25 62 views
0

我有一個用戶控件一個文本框裏面是這樣的:WPF驗證對孩子控制

<UserControl x:Class="xxx.CommonControls.Views.InPlaceEdit" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:catel="http://catel.codeplex.com" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      x:Name="parent" 
      mc:Ignorable="d"> 

    <Border Background="Transparent" MouseLeftButtonDown="UIElement_OnMouseLeftButtonDown"> 
     <TextBox x:Name="ButtonEdit" 
       Text="{Binding ElementName=parent, 
           Path=Value, 
           Mode=TwoWay, 
           UpdateSourceTrigger=PropertyChanged}"> 
     </TextBox > 
    </Border> 

</UserControl> 

用法:

​​

的問題是:如何將驗證錯誤我的TextBox?這是因爲所有ValidationErrors都存儲在我的InPlaceEdit控件中,並且沒有正確填充到TextBox。

(它的簡化圖,但是基本上顯示了我的問題。在我的應用程序正在使用ButtonEdit從DevExpress的,而不是文本框)

回答

0

我已經刪除文本從我的子控件綁定,並設置有約束力的是做到了與父母完全相同:

this.Loaded += (sender, args) => 
{ 
    var binding = BindingOperations.GetBinding(this, ValueProperty); 
    if (binding != null) 
    { 
     BindingOperations.SetBinding(ButtonEdit, DevExpress.Xpf.Editors.TextEditBase.TextProperty, binding); 
    } 
};