2013-05-17 11 views
6

हैलो मैं एक TextBlock अगर लौटाए गए परिणाम अशक्तयदि परिणाम देता है अशक्त

यहाँ मैं क्या कोशिश कर रहा हूँ है करने के लिए एक डिफ़ॉल्ट मान देने के लिए कोशिश कर रहा हूँ TextBlock डिफ़ॉल्ट मान दें!

वह सब रिटर्न मैं सेट स्ट्रिंग प्रारूप सेट करता हूं!

<TextBlock x:Name="NameTxtBlock" Grid.Column="0" Margin="0,0,40,0" FontFamily="Segoe UI" FontSize="14" Text="{Binding Name, StringFormat='Item Name: {0}'}" Padding="2"> 
    <TextBlock.Style> 
     <Style TargetType="TextBlock" >            
      <Style.Triggers> 
       <DataTrigger Binding="{Binding ElementName=NameTxtBlock, Path=Text}" Value="{x:Null}"> 
        <Setter Property="FontStyle" Value="Italic"/> 
        <Setter Property="Text" Value="No Name Found" /> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding ElementName=NameTxtBlock, Path=Text}" Value="{x:Static System:String.Empty}"> 
        <Setter Property="FontStyle" Value="Italic"/> 
        <Setter Property="Text" Value="No Name Found" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </TextBlock.Style> 
</TextBlock> 

उत्तर

18

आप TargetNullValue Property का उपयोग कर सकते हैं। बाध्यकारी रिटर्न नल अगर StringFormat के बिना यह TargetNullValue वापस करेगा।

<TextBlock Text="{Binding Name, StringFormat='Item Name: {0}', TargetNullValue='No Name Found'}" /> 
1

मैं टेक्स्टब्लॉक को उस ऑब्जेक्ट की किसी संपत्ति पर बांध दूंगा जो शून्य वापस नहीं आया; अपनी संपत्ति को एक डिफ़ॉल्ट मूल्य वापस कर दें। ऐसा लगता है कि आप हमेशा FontStyle इटालिक होना चाहते हैं, इसलिए मैं इसे ट्रिगर के बाहर ही बनाऊंगा।

3

आप सीधे बाध्यकारी में TargetNullValue संपत्ति का उपयोग कर सकते हैं।

<TextBox Text='{Binding Path=LastName, TargetNullValue="No name found."}' /> 
0

मेरे अनुप्रयोगों में, मुझे अपने ट्रिगर को वास्तविक ऑब्जेक्ट पर बाध्य करने के लिए और अधिक विश्वसनीय लगता है कि मेरा नियंत्रण बाध्य है। इसलिए, यदि मैं वास्तविक पाठ के बाध्यकारी के लिए वीएम में नाम देख रहा हूं, तो मैं इसके डेटा ट्रिगर को भी बांध दूंगा।

<TextBlock x:Name="NameTxtBlock" Grid.Column="0" Margin="0,0,40,0" FontFamily="Segoe UI" FontSize="14" Text="{Binding Name, StringFormat='Item Name: {0}'}" Padding="2"> 
<TextBlock.Style> 
    <Style TargetType="TextBlock" >            
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Name}" Value="{x:Null}"> 
       <Setter Property="FontStyle" Value="Italic"/> 
       <Setter Property="Text" Value="No Name Found" /> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding Name}" Value=""> 
       <Setter Property="FontStyle" Value="Italic"/> 
       <Setter Property="Text" Value="No Name Found" /> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
</TextBlock.Style> 

+1

इसके अलावा, आप रिश्तेदार स्रोत का उपयोग कर सकते TrialAndError

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