관찰 가능한 컬렉션을 사용하여 식사 유형을 여러 카테고리로 필터링하는 프로그램을 작성하고 있습니다. 열거 형을 사용하여 식사를 분류하고 있으며 각기 다른 버튼을 클릭 할 때 같은 코드로 세 개의 별도 메소드를 새 컬렉션으로 분리했습니다. 세 가지 enum 유형은 Vegetarian, Meat 및 Fish입니다. 나는 관찰 가능한 두 가지 수집 물, 식사 및 filteredMeals을 가지고 있습니다. 다른 메서드를 만든 다음 매개 변수로 Category를 전달하려고했지만 작동하지 못했습니다! 어떤 도움이라도 대단히 감사하겠습니다.내 프로그램을 줄이기 위해 코드를 반복하지 않으려 고합니다
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을 실제로 만들고 싶습니까? –