मुझे लगता है कि यह संभव है, लेकिन स्पष्ट तरीका काम नहीं कर रहा है।सामग्री कंट्रोल में डिफ़ॉल्ट डेटा टेम्पलेट प्रदर्शित करें जब इसकी सामग्री शून्य या खाली हो?
वर्तमान में, मैं यह कर रहा हूँ:
<ContentControl
Content="{Binding HurfView.EditedPart}">
<ContentControl.Resources>
<Style
TargetType="ContentControl"
x:Key="emptytemplate">
<Style.Triggers>
<DataTrigger
Binding="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=Content}"
Value="{x:Null}">
<Setter
Property="ContentControl.Template">
<Setter.Value>
<ControlTemplate>
<Grid
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<TextBlock>EMPTY!</TextBlock>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Resources>
</ContentControl>
मैं किसी भी बाध्यकारी त्रुटियों नहीं मिल रहा है और इस संकलित करता है। हालांकि, यह अपेक्षित परिणाम नहीं उत्पन्न करता है। मैंने स्पष्ट भी कोशिश की है:
<DataTemplate DataType="{x:Null}"><TextBlock>Hurf</TextBlock></DataTemplate>
यह संकलित नहीं होगा। और सामग्री सेट करने का प्रयास दो बार के रूप में अच्छी तरह से विफल रहता है:
<ContentControl
Content="{Binding HurfView.EditedPart}">
<TextBlock>DEFAULT DISPLAY</TextBlock>
</ContentControl>
मैं यह कर सकता एक कस्टम टेम्पलेट चयनकर्ता लेखन के बिना? आप शैली में सामग्री संपत्ति के लिए बाध्य करने के लिए है
<DataTemplate DataType="{x:Type system:DBNull}">
<!-- The default template -->
</DataTemplate>
...
<ContentControl Content="{Binding HurfView.EditedPart, FallbackValue={x:Static system:DBNull.Value}}" />
काम किया! धन्यवाद। – Will
शैलियों और ट्रिगरों के साथ अधिक जटिल चीजों को करने की कोशिश करते समय लोगों को एक बहुत ही आम गलती होती है। –
हर बार जब मैं इसके लिए वापस आ जाता हूं तो मैं एक टिप्पणी छोड़ने जा रहा हूं। धन्यवाद। – Will