c# - How to bind to 2 different members in a class in WPF? -


मेरे पास एक वर्ग है:

  class EditorViewModel {सार्वजनिक ObservableCollection & lt; Effect & gt; AllEffects; सार्वजनिक बाल हैजेशमेंट्स; }   

लेकिन समस्या यह है, जब मैं AllEffects से ListView को बाध्य करने की कोशिश कर रहा हूं, तो मैं < कोड> होश प्रेशर क्योंकि बाध्यकारी गुंजाइश AllEffects तक सीमित नहीं है, EditorViewModel

मैंने इसे करने की कोशिश की लेकिन यह काम नहीं करता है: <पूर्व> & lt; ListView आइटम्स स्रोत = "{बाध्यकारी संपादक ViewModel}" & gt; ... & lt; GridViewColumn Width = "Auto" हेडर = "नाम" & gt; & LT; GridViewColumn.CellTemplate & gt; & LT; DataTemplate & gt; & Lt; टेक्स्टब्लॉक टेक्स्ट = "{बाध्यकारी AllEffects.Name}" / & gt; & Lt; / DataTemplate & gt; & LT; /GridViewColumn.CellTemplate> & Lt; / GridViewColumn & gt; & Lt; GridViewColumn Width = "Auto" हैडर = "प्रकार" & gt; & LT; GridViewColumn.CellTemplate & gt; & LT; DataTemplate & gt; & Lt; TextBlock Text = "{बाध्यकारी AllEffects.Type}" / & gt; & Lt; / DataTemplate & gt; & LT; /GridViewColumn.CellTemplate> & Lt; / GridViewColumn & gt;

अगर मैं ItemsSource से EditorViewModel सेट किया है और AllEffects से छुटकारा पाता है, तो यह काम करता है लेकिन फिर मुझे पता नहीं है कि HasPermissions बाध्य करने के माध्यम से कैसे पहुंचा है:

  & gt; ग्रिडव्वेज कॉलम चौड़ाई = "50" हैडर = "ओवरराइड" & gt; & LT; GridViewColumn.CellTemplate & gt; & LT; DataTemplate & gt; & Lt; चेकबॉक्स मार्जिन = "0" क्षैतिज एलाइन्मेंट = "केंद्र" isEnabled = "{बाध्यकारी हैजर्मिशन}" / & gt; & Lt; / DataTemplate & gt; & LT; /GridViewColumn.CellTemplate> & Lt; / GridViewColumn & gt;    

एक क्लासिक चाल ViewModelLocator का उपयोग करना है, देखें:

भी, अधिक तेज़ और गंदे समाधान के लिए, आप निम्न बाइंडिंग का उपयोग कर सकते हैं:

  {बाइंडिंग रिलेटिव सोरस = {रिलेटिवस्सोर्स मोड = खोजएन्स्टार्स, एंस्टीरटाइप = लिस्ट्यूव्यू}, पथ = डेटाकॉन्टेक्स। हसप्रमिशन}   

ध्यान दें कि यह केवल WPF पर काम करेगा और एसएल में न हो, क्योंकि एसएल रिलेटिव रिसोर्स के इस सिंटैक्स का समर्थन नहीं करता है।

Comments