Witajcie, muszę zaimplementować metody sortujące DataGrida. Nie wiem jednak kompletnie jak się do tego zabrać. DataGrid musi się sortować po zmianie wybranego elementu w ComboBoxie. Mam coś takiego:
private IList<cPrinterInfo> List = new ObservableCollection<cPrinterInfo>();
#region Filtry - Sortowanie
public enum eSortujWedlug
{
NieSortuj,
StanDrukarki,
AdresIP,
RodzajUrzadzenia,
NazwaHosta,
Lokalizacja,
StatusUrzadzenia
}
private eSortujWedlug sortujWedlug;
public eSortujWedlug SortujWedlug
{
get
{
return sortujWedlug;
}
private set
{
sortujWedlug = value;
OnPropertyChanged("SortujWedlug");
}
}
public enum eSortujMalejacoRosnaco
{
Malejaco,
Rosnaco
}
private eSortujMalejacoRosnaco sortujMalejacoRosnaco;
public eSortujMalejacoRosnaco SortujMalejacoRosnaco
{
get
{
return sortujMalejacoRosnaco;
}
private set
{
sortujMalejacoRosnaco = value;
OnPropertyChanged("SortujMalejacoRosnaco");
}
}
private void hComboBoxSortujWedlug_Initialized(object sender, System.EventArgs e)
{
(sender as ComboBox).Items.Add("Nie sortuj");
(sender as ComboBox).Items.Add("Stan drukarki");
(sender as ComboBox).Items.Add("Adres IP");
(sender as ComboBox).Items.Add("Rodzaj urządzenia");
(sender as ComboBox).Items.Add("Nazwa hosta");
(sender as ComboBox).Items.Add("Lokalizacja");
(sender as ComboBox).Items.Add("Status urządzenia");
}
private void hComboBoxSortujWedlug_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if ((sender as ComboBox).SelectedIndex >= 0)
SortujWedlug = (eSortujWedlug)(sender as ComboBox).SelectedIndex;
else
SortujWedlug = eSortujWedlug.NieSortuj;
}
private void hSortujMalejaco_Checked(object sender, RoutedEventArgs e)
{
}
private void hSortujRosnąco_Checked(object sender, RoutedEventArgs e)
{
}
private void ListSort(eSortujWedlug SortujWedlug, eSortujMalejacoRosnaco SortujMalejacoRosnaco)
{
switch(SortujWedlug)
{
case eSortujWedlug.NieSortuj:
break;
case eSortujWedlug.StanDrukarki:
ListSort_StanDrukarki(SortujMalejacoRosnaco);
break;
case eSortujWedlug.AdresIP:
ListSort_AdresIP(SortujMalejacoRosnaco);
break;
case eSortujWedlug.RodzajUrzadzenia:
ListSort_RodzajUrzadzenia(SortujMalejacoRosnaco);
break;
case eSortujWedlug.NazwaHosta:
ListSort_NazwaHosta(SortujMalejacoRosnaco);
break;
case eSortujWedlug.Lokalizacja:
ListSort_Lokalizacja(SortujMalejacoRosnaco);
break;
case eSortujWedlug.StatusUrzadzenia:
ListSort_StatusUrzadzenia(SortujMalejacoRosnaco);
break;
}
}
private void ListSort_StanDrukarki(eSortujMalejacoRosnaco SortujMalejacoRosnaco)
{
}
private void ListSort_AdresIP(eSortujMalejacoRosnaco SortujMalejacoRosnaco)
{
}
private void ListSort_RodzajUrzadzenia(eSortujMalejacoRosnaco SortujMalejacoRosnaco)
{
}
private void ListSort_NazwaHosta(eSortujMalejacoRosnaco SortujMalejacoRosnaco)
{
}
private void ListSort_Lokalizacja(eSortujMalejacoRosnaco SortujMalejacoRosnaco)
{
}
private void ListSort_StatusUrzadzenia(eSortujMalejacoRosnaco SortujMalejacoRosnaco)
{
}
#endregion
Myślę jak zrobić, aby sortowanie odbywało się w oparciu o jakiś ciąg z wewnątrz obiektu cPrinterInfo. Możecie mnie jakos naprowadzić?