की आईस्कैक्ड संपत्ति में डेटा ट्रिगर को बाइंड करना मुझे विश्वास है कि मैं जो करने की कोशिश कर रहा हूं वह "सरल" है, इसलिए शायद मुझे कुछ स्पष्ट याद आ रही है।एक चेकबॉक्स
डेटाग्रिड में, मैं चेकबॉक्स को बांधने की कोशिश कर रहा हूं ताकि जब यह चेक किया जाए, तो इसकी पंक्ति का पृष्ठभूमि रंग बदल जाएगा। प्रत्येक पंक्ति में एक चेकबॉक्स है। मैं मूल रूप से अपनी खुद की चुनिंदा-बहु-पंक्तियों की कार्यक्षमता को कार्यान्वित कर रहा हूं (यह एक उत्पाद आवश्यकता है, पूछो मत), और मेरे पास सब कुछ काम कर रहा है लेकिन एक चयनित पंक्ति का यह दृश्य संकेत है।
मैंने this question पढ़ा है, लेकिन जहां मेरा जवाब नहीं है, वही है जो वास्तव में "बूलियनप्रोपर्टीऑनऑब्जेक्टबाउंडट्रो" के रूप में रखना है। मैंने this question पर भी देखा है और एक सापेक्ष स्रोत के साथ गड़बड़ करने की कोशिश की लेकिन बिना किसी किस्मत के।
मैं अपने ग्रिड बनाने के मेरे में कोड-पीछे, लेकिन यहाँ मेरे वर्तमान पंक्तियों के लिए इस्तेमाल किया शैली (जो मेरे DataTrigger परिभाषित किया गया है) है:
<Style x:Key="MyRowStyle" TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked}" Value="True">
<Setter Property="Background" Value="Blue"/>
</DataTrigger>
</Style.Triggers>
</Style>
अब मेरी कोड-पीछे में, मैं अपने DataGridTemplateColumn बना सकते हैं और एक फैक्टरी का उपयोग अपने चेक बॉक्स बनाने के लिए, और यहाँ मेरी बाइंडिंग प्रासंगिक कोड है:
Binding checkBinding = new Binding("IsChecked");
checkBinding.Mode = BindingMode.OneWayToSource;
RelativeSource relativeSource = new RelativeSource();
relativeSource.AncestorType = typeof(DataGridRow);
relativeSource.Mode = RelativeSourceMode.FindAncestor;
checkBinding.RelativeSource = relativeSource;
factory.SetBinding(CheckBox.IsCheckedProperty, checkBinding);
क्या रुचि का हो सकता तथ्य मैं एक DataTable करने के लिए अपने डेटा ग्रिड के ItemsSource सेट है कि, लेकिन मेरे चेकबॉक्स स्तंभ नहीं करता है डेटाटेबल में एक समान कॉलम है। मैं बस टेम्पलेट कॉलम को अलग से जोड़ता हूं, शायद अंतर्निहित भंडारण की कमी इस पर असर डाल रही है?
किसी भी मामले में यदि आपको कोई और जानकारी चाहिए, तो कृपया मुझे बताएं। धन्यवाद!
बिल्कुल मेरी का उत्तर मिला? – Phil