मेरे पास एक WPF डेटाग्रिड है जिसका उपयोग मैं कई स्तंभों के साथ कर रहा हूं। कॉलम में से एक में कुछ तत्व होते हैं जो कभी-कभी शून्य होते हैं और जब मैं इस कॉलम को आज़माता हूं और सॉर्ट करता हूं तो यह अपवाद का कारण बनता है।WPF डेटाग्रिड शून्य तत्वों के साथ कॉलम पर क्रमबद्ध करें
कालॅम की परिभाषा है कुछ की तरह:
<dg:DataGrid.Columns>
<dg:DataGridTextColumn Binding="{Binding MyObject.Field1}" Header="Field1" Width="Auto" />
<dg:DataGridTextColumn Binding="{Binding MyObject.Field2.SubField}" Header="Field2" Width="Auto" />
</dg:DataGrid.Columns>
अगर मैं प्रकार फ़ील्ड 1 स्तंभ पर यह ठीक है, अगर मैं प्रकार फ़ील्ड 2 स्तंभ पर और कोई रिक्त फ़ील्ड 2 वस्तुओं यह ठीक है देखते हैं, लेकिन कभी कभी वहाँ कर रहे हैं और डेटा ग्रिड उप क्षेत्र (मुझे लगता है) पर सॉर्ट करने के लिए कोशिश करता है और एक अशक्त अपवाद हिट:
System.InvalidOperationException was unhandled
Message=The SortDescriptions added are not valid. The probable solutions are to set the CanUserSort on the Column to false, or to use SortMemberPath property on the Column, or to handle the Sorting event on DataGrid.
मैं कोशिश की है SortMemberPath सेटिंग "MyObject.Field2.SubField" लेकिन निश्चित रूप से इस के बाद से समाधान नहीं होता है करने के लिए फील्ड 2 अभी भी कभी-कभी शून्य है। मैं एक कनवर्टर का उपयोग करने की कोशिश करने के बारे में सोच रहा था जहां मैंने सॉर्टमम्बरपैथ सेट किया था और उस कनवर्टर रिटर्न स्ट्रिंग.empty को किसी भी शून्य तत्वों के लिए वापस कर दिया लेकिन इसे काम नहीं कर सका।
मैंने इन स्तंभों के बाध्यकारी के भीतर "TargetNullValue = {x: स्टेटिक sys: String.Empty}" जोड़ने का भी प्रयास किया लेकिन यह अभी भी काम नहीं कर रहा है।
किसी भी सलाह/सुझाव की सराहना की जाएगी। धन्यवाद,
आप यह सुनिश्चित कर सकते हैं कि कनवर्टर का उपयोग करके आपकी वस्तु कभी भी शून्य न हो या बस डेटाग्रिड के लिए डेटा प्राप्त करने पर इसे तुरंत चालू करें (यदि यह शून्य है)। –