/ / ट्रैप XAML ट्रिगर इवेंट के पीछे कोड से - .net, wpf, विज़ुअल-स्टूडियो -2010, xaml

कोड के पीछे कोड से ट्रैप एक्सएएमएल ट्रिगर इवेंट - .net, wpf, विजुअल-स्टूडियो -2010, xaml

मेरे पास एक बहुत ही सरल DataTemplate ट्रिगर है और जब इसे उठाया जाता है, तो मुझे इसे कोड से पीछे से पकड़ने की आवश्यकता होती है। मैंने यह उदाहरण देखा: http://geekswithblogs.net/mrnat/archive/2007/09/20/115472.aspx, लेकिन मैं नहीं जानता कि यह कैसे मेरे DataTrigger के साथ काम करने के लिए है। यह मेरा कोड है:

<GridViewColumn Header="PASS">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Label Name="LblWarn" Content="{Binding DescWarning}" FontSize="11" Style="{StaticResource FormLabel}"/>

<DataTemplate.Triggers>
<DataTrigger Binding="{Binding ID_Warning}" Value="1">
<Setter TargetName="LblWarn" Property="Style" Value="{StaticResource FormLabel}"/>
</DataTrigger>
</DataTemplate.Triggers>

</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>

बहुत धन्यवाद!

उत्तर:

जवाब के लिए 2 № 1

नहीं, नहीं, नहीं ... उस भयानक विचार को भूल जाओ। क्या आपने अपने पर भी न्यूनतम विवरण प्रदान किया था वास्तविक लक्ष्य था, तब मैं आपको बेहतर उत्तर प्रदान कर सकता था। जैसा कि यह है कि आपने जो थोड़ा सा विवरण जोड़ा है, उसके अनुसार मैं यह कर सकता हूं कि आप एक ही परिणाम प्राप्त करने के एक समझदार तरीके से बात करें।

तो सबसे पहले, आपका DataTrigger है Binding को ID_Warning कुछ वर्ग की संपत्ति और प्रतिक्रिया जब इस संपत्ति का मूल्य बराबर होता है 1। तो आप मूल रूप से जानना चाहते हैं कि कब ID_Warning संपत्ति का एक मूल्य है 1। यह तरीका है कि यह किया जाना चाहिए (उस वर्ग में जो संपत्ति को परिभाषित करता है):

public string ID_Warning
{
get { return iD_Warning; }
set
{
iD_Warning == value;
NotifyPropertyChanged("ID_Warning");
if (iD_Warning == 1)
{
DoSomethingHere();
}
}
}

यदि आपको किसी दृश्य मॉडल या अन्य वर्ग से इस तक पहुंचने की आवश्यकता है जिसमें इस वर्ग के एक या अधिक उदाहरण हैं, तो आप बस एक का उपयोग कर सकते हैं delegate या जानकारी को पारित करने के लिए घटना।