Я пишу программу для фильтрации типов еды в разные категории с помощью наблюдаемой коллекции. Я использую перечисления, чтобы классифицировать питание, и у меня есть три отдельных метода с тем же кодом, чтобы разделить их на новые коллекции, когда их соответствующие кнопки будут нажаты. Три типа перечислений: вегетарианское, мясо и рыба. У меня есть две наблюдаемые коллекции, питание и фильтрация. Я пытался создать другой метод, а затем передать категорию в качестве параметра, но я не мог заставить его работать! Любая помощь будет принята с благодарностью.Попытка сократить мою программу, поэтому код не повторяется
private void btnVegetarian_Click(object sender, RoutedEventArgs e)
{
filteredMeals = new ObservableCollection<Meal>();
Meal newMeal = new Meal();
for (int i = 0; i < meals.Count; i++)
{
newMeal = meals[i];
if (newMeal.Category == MealCategory.Vegetarian)
{
filteredMeals.Add(newMeal);
}
}
lbxMeals.ItemsSource = filteredMeals;
}
private void btnMeat_Click(object sender, RoutedEventArgs e)
{
filteredMeals = new ObservableCollection<Meal>();
Meal newMeal = new Meal();
for (int i = 0; i < meals.Count; i++)
{
newMeal = meals[i];
if (newMeal.Category == MealCategory.Meat)
{
filteredMeals.Add(newMeal);
}
}
lbxMeals.ItemsSource = filteredMeals;
}
private void btnFish_Click(object sender, RoutedEventArgs e)
{
filteredMeals = new ObservableCollection<Meal>();
Meal newMeal = new Meal();
for (int i = 0; i < meals.Count; i++)
{
newMeal = meals[i];
if (newMeal.Category == MealCategory.Fish)
{
filteredMeals.Add(newMeal);
}
}
lbxMeals.ItemsSource = filteredMeals;
}
Почему бы не показать метод, который не работает, что вы пробовали? – Casey
Вы хотите назначить тот же ListBox во всех трех случаях? И действительно ли вы хотите создать новый ObservableCollection в каждом случае, которое вытирает предыдущий? –