2012-06-25 17 views
5

मैं संख्यात्मक सामग्री पर कॉलम सॉर्ट करने का प्रयास कर रहा हूं। बहु बाध्यकारी कनवर्टर ठीक काम करता है। यह समाधान सॉर्टमेम्बरपाथ को शून्यमल्टीबाइंडिंग पर डेटाग्रिड कॉलम सॉर्टमेम्बरपाथ

पर सेट करेगा, मैंने कई तरीकों से प्रयास किया है, और इंटरनेट को काफी हद तक खराब कर दिया है।

सुरक्षा उद्देश्यों के लिए मूल से कोड संशोधित किया गया है।

<DataGridTemplateColumn x:Name="avgPriceColumn"> 
<DataGridTemplateColumn.CellTemplate> 
    <DataTemplate> 
     <TextBlock> 
      <TextBlock.Text> 
       <MultiBinding Converter="{StaticResource avgPriceConverter}"> 
        <Binding Path="NumberToDivideBy" /> 
        <Binding Path="TotalDollars" /> 
       </MultiBinding> 
      </TextBlock.Text> 
     </TextBlock> 
    </DataTemplate> 
</DataGridTemplateColumn.CellTemplate> 
<DataGridTemplateColumn.SortMemberPath> 
    <MultiBinding Converter="{StaticResource avgPriceConverter}"> 
     <Binding Path="NumberToDivideBy" /> 
     <Binding Path="TotalDollars" /> 
    </MultiBinding> 
</DataGridTemplateColumn.SortMemberPath> 
</DataGridTemplateColumn> 

संपादित करें: मैं multibinding बिना काम करने के लिए बाध्य डेटा प्राप्त करने के लिए एक रास्ता मिल गया, लेकिन अभी भी छँटाई काम नहीं करता। चूंकि डेटाग्रिड एक कस्टम क्लास से जुड़ा हुआ है, इसलिए मैं पूरा मूल्य लेता हूं और उसमें से कनवर्ट करता हूं, इस प्रकार मल्टीबाइंडिंग की आवश्यकता को कम करता है।

<DataGridTextColumn x:Name="avgPriceColumn" Binding="{Binding Converter={StaticResource avgPriceConverter}}" SortMemberPath="{Binding Converter={StaticResource avgPriceConverter}}" /> 

इन दोनों विकल्पों पर SortMemberPath बाइंडिंग तो मैं स्पष्ट रूप से इसे परिभाषित करने के लिए के रूप में मैं

है हालांकि इस समाप्त होता है SortMemberPath मान सेट जो के लिए लागू कस्टम की कमी के विरोध में शून्य की जरूरत नहीं है करने के लिए डिफ़ॉल्ट सेट है मेरा कोड पर्यावरण, और सॉर्ट नहीं करता है। तो मुझे अभी भी बेहतर समाधान में दिलचस्पी है।

संपादित करें:

परस्पर विरोधी कोड बदल दिया है कहीं और डुप्लिकेट SortMemberPath की, कुछ स्तंभ पर छँटाई का समर्थन नहीं करते अनुमति देने के लिए, और किसी प्रकार का बंद पड़ोसी-स्तंभ मान के लिए

उत्तर

6

SortMemberPath एक संपत्ति के नाम पर (उम्मीद कर रही है उदाहरण के लिए "टोटल डोलर्स") एक व्यक्तिगत गणना पंक्ति मूल्य नहीं। इसे हेडर की तरह सोचें, आप इसे पूरे कॉलम के लिए एक बार सेट करते हैं। आपका कनवर्टर 15 की तरह एक नंबर लौटाएगा जहां SortMemberPath बाध्यकारी पथ स्ट्रिंग चाहता है।

दो विकल्प जो मन में आते हैं:

  1. अपने समर्थन वस्तु (जैसे, "AveragePrice") पर एक गणना संपत्ति प्रदान करें और उस के लिए बाध्य। कोई कनवर्टर या सॉर्ट सदस्य पथ आवश्यक नहीं है।

    public double AveragePrice 
    { 
        get { return TotalDollars/NumberToDivideBy; } 
    } 
    
  2. इस question में की तरह एक OnSorting ईवेंट हैंडलर निर्दिष्ट करें।

उम्मीद है कि यह मदद करता है। :)

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^