2013-03-28 6 views
5

पर काम नहीं कर रहा है मेरे पास एक स्टैक पैनल है जिसे मैं लेबल की सामग्री के आधार पर दृश्यमान बनाना चाहता हूं। बस यकीन नहीं है कि यह मेरे लिए क्यों काम नहीं कर रहा है। बोल्ड में जो हाइलाइट किया गया है वह है जिसे मैं छिपाना चाहता हूं। कोई उपाय?लेबल सामग्री के आधार पर स्टैकपैन दृश्यता

<StackPanel Orientation="Horizontal"> 
<Label Nane="lblCarrier" Content="{Binding Path=Carrier}" /> 
**<StackPanel Orientation="Horizontal"> 
    <StackPanel.Style> 
     <Style TargetType="StackPanel"> 
      <Setter Property="Visibility" Value="Visible" /> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Content, ElementName=lblCarrier}" Value=""> 
        <Setter Property="Visibility" Value="Hidden" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </StackPanel.Style> 
    <Label x:Name="lblCarrierGrade" Content="Grade Carrier:" /> 
    <TextBox x:Name="txtCarrierGrade1" /> 
    <TextBox x:Name="txtCarrierGrade2" /> 
</StackPanel>** 

उत्तर

8

यह हो सकता है कि ContentString.Empty के बजाय शून्य है।

आप अपने सुझाव के लिए TargetNullValue

<DataTrigger Binding="{Binding Content, ElementName=lblCarrier,TargetNullValue=''}" Value=""> 
     <Setter Property="Visibility" Value="Hidden" /> 
</DataTrigger> 
+1

बहुत बहुत धन्यवाद। "TargetNullValue = ''" यह काम करता है। – user1884032

+0

+1 मुझे उस बिंदु को भी नहीं पता था। –

1

क्यों एक कनवर्टर का उपयोग नहीं? एक वर्ग फ़ाइल जोड़ें आप इस तरह पेश करने की: संसाधनों में कहीं फिर

xmlns:myNamespace="clr-namespace:[YourProjectName]" 

अब इस

<myNamespace:VisibilityConverter x:Key="myConverter"/> 

जोड़ने आप इसका इस्तेमाल कर सकते हैं: अपने Window परिभाषा में

class VisibilityConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return string.IsNullOrEmpty(value as string) ? Visibility.Hidden : Visibility.Visible; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 

इस ऐड :

<Style TargetType="StackPanel"> 
     <Setter Property="Visibility" 
       Value="{Binding Content, ElementName=lblCarrier, 
           Converter = {StaticResources myConverter}}"/> 
+0

धन्यवाद का उपयोग कर की कोशिश कर सकते। मैं इसकी सराहना करता हूं लेकिन मैं और कुछ करने के बिना बस कुछ सरल और तेज़ चाहता था। – user1884032

+0

ठीक है। मैं उस जवाब को पसंद करूंगा। :-) –

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