2010-07-29 6 views
11

नियंत्रण के नीचे टेक्स्टब्लॉक में त्रुटि सामग्री को प्रदर्शित करने का कोई तरीका है जैसे कि टूलटिप को त्रुटि टेक्स्ट को कैसे सेट किया गया है?नियंत्रण के नीचे सत्यापन त्रुटि संदेश के साथ डब्ल्यूपीएफ डिस्प्ले टेक्स्टब्लॉक

 <Style x:Key="textBoxInError" TargetType="Control"> 
     <Setter Property="Validation.ErrorTemplate"> 
      <Setter.Value> 
       <ControlTemplate> 
        <DockPanel> 
         <TextBlock DockPanel.Dock="Left" Foreground="Red" FontWeight="Bold">*</TextBlock> 
         <TextBlock Text="WOULD LIKE TO SHOW WHAT TOOLTIP IS SHOWING" DockPanel.Dock="Bottom" Foreground="Red"/> 
         <Border BorderBrush="Red" BorderThickness="2"> 
          <AdornedElementPlaceholder/> 
         </Border> 
        </DockPanel> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
     <Style.Triggers> 
      <Trigger Property="Validation.HasError" Value="True"> 
       <Setter Property="ToolTip" 
         Value="{Binding RelativeSource={x:Static RelativeSource.Self}, 
        Path=(Validation.Errors)[0].ErrorContent}"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 

दूसरे शब्दों में, मैं टूल टिप के बजाय नियंत्रण के नीचे टेक्स्टब्लॉक में त्रुटि संदेश दिखाता हूं।

+0

समस्या मैं इस के साथ आई है यह है कि त्रुटि संदेश टेक्स्टब्लॉक को अन्य नियंत्रणों के ऊपर प्रस्तुत किया जाएगा जो इसके नीचे हो सकते हैं। यह इसके लिए जगह बनाने के लिए सबकुछ नीचे नहीं टक्करता है। एडॉर्नर परत पर प्रदर्शित होने वाले त्रुटि टेम्पलेट के साथ कुछ करने के लिए ... अभी तक इसे काफी समझ में नहीं आया है। – statikuz

उत्तर

18

ErrorTemplate की DataContext पहले से ही Validation.Errors का मूल्य है, तो आप सिर्फ क्या कर सकते हैं:

<TextBlock Text="{Binding [0].ErrorContent}" DockPanel.Dock="Bottom" Foreground="Red"/> 

या

<TextBlock Text="{Binding ErrorContent}" DockPanel.Dock="Bottom" Foreground="Red"/> 
संबंधित मुद्दे