فقط قادرة على فرز مربع القائمة مرة واحدة، لا أعرف لماذا (WPF)

StackOverflow https://stackoverflow.com/questions/1637612

  •  08-07-2019
  •  | 
  •  

سؤال

والسؤال: ماذا يجب القيام بها لقانون بلدي التغييرات للسماح لي لفرز أكثر من مرة


والمعلومات:

ولدي مربع قائمة تحتوي على 1000 شحنات عينة في ذلك في برنامج أنا أكتب حاليا، لقد وجدت أسهل طريقة لفرز هذه الشحنات في نقرة زر واحدة مثل ذلك:

Private Sub Date_Ascending_Selected(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Date_Ascending.Selected
    ShipmentsList.Items.SortDescriptions.Add(New SortDescription("ReceivedOn", ListSortDirection.Ascending))
End Sub

والمشكلة مع هذا هي أنه يعمل مرة واحدة فقط. لدي حاليا 4 من هذه (تاريخ تصاعدي وديس، مركز تصاعدي ودي) مع احتمال ما لا يقل عن 30. وأود أن تكون قادرة على فرز أكثر من مرة، لكنني لست متأكدا من كيفية إصلاح هذه. حدسي يقول لي ان المشكلة تكمن في جزء "جديد"، ولكن أنا لا أعرف أي مكان آخر أود أن وضعه.

هل كانت مفيدة؟

المحلول

وانا التخمين افتراضاتك عن كيفية عمل هذا غير صحيح، لذلك اسمحوا لي أن الحمار من لي ولكم من خلال الإجابة ...

وإذا كان هدفك هو لترتيب النتائج بحسب العمود A والعمود B، عليك أن تفعل شيئا مثل ما يلي:

ShipmentsList.Items.SortDescriptions.Add(New SortDescription("A", _
    ListSortDirection.Ascending))
ShipmentsList.Items.SortDescriptions.Add(New SortDescription("B", _
    ListSortDirection.Ascending))

والتي قد تؤدي في الترتيب التالي:

وA B
1 ×
1 ض
2 (أ)
2 د

وإذا كان هدفك هو الوصول الى وقف الترتيب بواسطة A، والآن الترتيب حسب B، كنت تفعل شيئا من هذا القبيل:

' set initial sort
ShipmentsList.Items.SortDescriptions.Add(New SortDescription("A", _
    ListSortDirection.Ascending))
'... later, we now want to sort by B
ShipmentsList.Items.SortDescriptions.Clear()
ShipmentsList.Items.SortDescriptions.Add(New SortDescription("B", _
    ListSortDirection.Ascending))

وبواسطة التخلص من جمع أوصاف النوع، يمكنك إزالة SortDescription عن ألف واستبداله بآخر لB، بدلا من إضافة واحدة لB بعد. هذا من شأنه أن يؤدي في الترتيب التالي:

وA B
2 (أ)
2 د
1 ×
1 ض

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top