2013-02-05 50 views
5

की संपत्ति को बाइंडिंग मैं एक डेटा ग्रिड हैDataContext अभिभावक WPF

<DataGridTextColumn Binding="{Binding l}">//l=prop of xxx class that contains the collection 
           <DataGridTextColumn.HeaderTemplate> 
            <DataTemplate> 
             <TextBlock Text="{Binding DataContext.LName, 
         RelativeSource={RelativeSource AncestorType=DataGrid}}"/> 
            </DataTemplate> 
           </DataGridTextColumn.HeaderTemplate> 
          </DataGridTextColumn> 
: डेटा ग्रिड में एक विशेष स्तंभ के

मैं इस तरह की कोशिश

यह काम नहीं किया

यह कैसे कर सकता है?

+0

'एल' क्या है - कृपया अपने व्यूमोडेल – Blachshma

+0

का एक बेहतर उदाहरण पोस्ट करें, यदि यह आवश्यक है तो मैं प्रश्न संपादित करता हूं, तो एल एक स्ट्रिंग है और नोटिफ़ाई के साथ भी काम कर रहा है ... –

उत्तर

15

{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.LName}

इसके अलावा, मैं नाम के मामलों के साथ खेलने नहीं होगा की कोशिश करो। डब्ल्यूपीएफ सुंदर मामला-संवेदनशीलता है। एक-प्रतीक नामों का उपयोग करने से बचें

+0

काम नहीं करता है क्योंकि DataGridColumn दृश्य पेड़ के अलावा नहीं है। तो यह लुकअप नहीं कर सकता है। संदर्भ के साथ बाध्यकारी के लिए स्रोत नहीं मिल रहा है 'रिलेटिवसोर्स FindAncestor, Ancestorpe =' System.Windows.Window 'यह कॉलम में दृश्यताप्रॉपर्टी पर है। यह प्रश्न x के साथ इसका उत्तर देने लगता है: संदर्भ http://stackoverflow.com/questions/22073740/binding-visibility-for-datagridcolumn-in-wpf – user99999991

+0

एक आकर्षण की तरह काम किया। बहुत धन्यवाद :) – Ortund

0

बाइंडिंग पथ केस-संवेदी भी हैं। आपके डीसी में lName कोई संपत्ति नहीं है।