2011-09-06 21 views
7

इन्फ्राजिस्टिक्स XamDataGrid के साथ काम करने के लिए स्टाइल लागू करें मुझे एक ऐसी स्थिति का सामना करना पड़ा जहां मैं एक स्टाइल लागू कर सकता हूं, केवल एक निश्चित संपत्ति सेट हो। हालांकि, मुझे लगता है कि यह xamDataGrid विशिष्ट की तुलना में एक सामान्य WPF/शैली प्रश्न है।संपत्ति मूल्य

नीचे दी गई शैली मैं वर्तमान में उपयोग कर रहा हूं। यह रिकॉर्ड चयनकर्ता क्षेत्र में चेकबॉक्स जोड़ता है:

<Style TargetType="{x:Type igDP:RecordSelector}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type igDP:RecordSelector}"> 
       <CheckBox x:Name="HeaderCheckBox" 
          HorizontalAlignment="Center" 
          VerticalAlignment="Center" 
          IsChecked="{Binding Path=DataItem.IsChecked}"> 
       </CheckBox> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsFilterRecord" Value="True"> 
        <Setter TargetName="HeaderCheckBox" Property="Visibility" Value="Collapsed"/> 
        </Trigger> 
        <Trigger Property="IsAddRecord" Value="True"> 
        <Setter TargetName="HeaderCheckBox" Property="Visibility" Value="Collapsed"/> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

लक्ष्य प्रकार रिकॉर्डर चयनकर्ता है। यदि रिकॉर्ड या तो फ़िल्टर पंक्ति या अतिरिक्त रिकॉर्ड पंक्ति है, तो मैं चेक बॉक्स नहीं दिखाना चाहता हूं।

मैं इसे बदलना चाहता हूं ताकि यदि रिकॉर्ड अतिरिक्त रिकॉर्ड पंक्ति (IsAddRecord == true) है, तो शैली को बिल्कुल लागू न करें। मैं अपनी डिफ़ॉल्ट शैली को बनाए रखने के लिए रिकॉर्ड रिकॉर्ड पंक्ति चाहता हूं।

क्या यह संभव है?

उत्तर

9

आप शैली के भीतर ही से aplied होने से रोका जा सकता है शैली नहीं है, लेकिन आप Style.Triggers का उपयोग कर लागू किया जा रहा से अपने Setters रोका जा सकता है:

<Style TargetType="{x:Type igDP:RecordSelector}"> 
    <Style.Triggers> 
     <Trigger Property="IsAddRecord" Value="False"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type igDP:RecordSelector}"> 
         <CheckBox x:Name="HeaderCheckBox" 
            HorizontalAlignment="Center" 
            VerticalAlignment="Center" 
            IsChecked="{Binding Path=DataItem.IsChecked}"> 
         </CheckBox> 
         <ControlTemplate.Triggers> 
          <Trigger Property="IsFilterRecord" Value="True"> 
          <Setter TargetName="HeaderCheckBox" Property="Visibility" Value="Collapsed"/> 
          </Trigger> 
         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
+0

बिल्कुल सही! बहुत बहुत धन्यवाद। – Flack

संबंधित मुद्दे