जब उपयोगकर्ता मेरे DataGrid
में कॉलम सॉर्ट करता है, तो मैं शीर्ष की बजाय सभी शून्य या खाली कोशिकाओं को नीचे क्रमबद्ध करना चाहता हूं।मैं एक WPF DataGrid पर एक कस्टम सॉर्ट नियम कैसे लागू कर सकता हूं?
मैंने IComparer<T>
लिखा है जो सुनिश्चित करता है कि रिक्त स्थान हमेशा नीचे की ओर क्रमबद्ध होते हैं, लेकिन मैं यह नहीं समझ सकता कि इसे मेरे DataGrid
के कॉलम पर कैसे लागू किया जाए। ध्यान दें कि प्रारंभिकDataGrid
का प्रकार, जो मैं LINQ OrderBy()
विधि के साथ कर रहा हूं, बहुत अच्छा काम करता है। समस्या यह है कि उपयोगकर्ता द्वारा किए गए सभी प्रकार के रिक्त स्थान शीर्ष पर रिक्त स्थान को क्रमबद्ध करते हैं।
comparer कोड
public class BlankLastStringComparer : IComparer<string>
{
public int Compare(string x, string y)
{
if (string.IsNullOrEmpty(x) && !string.IsNullOrEmpty(y))
return 1;
else if (!string.IsNullOrEmpty(x) && string.IsNullOrEmpty(y))
return -1;
else
return string.Compare(x, y);
}
}
प्रश्न
मैं कैसे DataGridColumn
मेरी comparer उपयोग करने के लिए मिलता है? या यदि यह संभव नहीं है, तो क्या आप एक कामकाज की पेशकश कर सकते हैं? यदि संभव हो तो मैं एक एमवीवीएम अनुकूल समाधान की उम्मीद कर रहा हूं।
बस एक नोट संग्रह अपने डेटा ग्रिड के लिए बाध्य किया गया था के प्रकार पर निर्भर करता है, आप के लिए [एक अलग प्रकार] GetDefaultView का परिणाम कास्ट करने के लिए हो सकता है (http://msdn.microsoft.com/ en-us/पुस्तकालय/ms752347.aspx # how_to_create_a_view)। – xr280xr