Вид трудно объяснить, но у меня есть WrapPanel, который включает данные, которые отображаются на основе индекса i. Индекс i изменяется в зависимости от того, выбирает ли пользователь что-то из ComboBox. Проблема заключается в том, когда пользователь выбирает новый параметр из ComboBox, новый обертывание/данные перекрывают предыдущий обертку/данные. Я хочу, чтобы первый начальный обертка отображался, а затем, когда выбран SelectedIndex, предыдущий обертку должен быть скрыт, а новый обертку - на новом индексе, который будет показан. Вот некоторые примеры кода:C# WPF WrapPanel Issue
private void fillColumns(int i, int colIndex, int rowIndex) //Called each time SelectedIndex is changed.
{
System.Windows.Controls.WrapPanel wrap1 = new System.Windows.Controls.WrapPanel();
wrap1.Orientation = System.Windows.Controls.Orientation.Vertical;
wrap1.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
wrap1.Margin = new Thickness(2, 2, 2, 2);
System.Windows.Controls.TextBlock courseTextBlock = new System.Windows.Controls.TextBlock();
courseTextBlock.Inlines.Add(new Run("Course: ") { Foreground = Brushes.Purple, FontWeight = FontWeights.Bold });
courseTextBlock.Inlines.Add(returnedTable.Tables[0].Rows[i]["course_prefix"].ToString() + " " + returnedTable.Tables[0].Rows[i]["course_num"].ToString());
courseTextBlock.Margin = new Thickness(2, 2, 2, 2);
wrap1.Children.Add(courseTextBlock);
Grid.SetColumn(wrap1, colIndex);
Grid.SetRow(wrap1, rowIndex);
tabGrid1.Children.Add(wrap1)
//Clear WrapPanel after user chooses new ComboBox option?
}
Часто в WPF вы указываете элемент управления в представлении (XAML) и привязываете содержимое к свойству ViewModel. Представление будет знать, чтобы обновить его содержимое, когда вы сообщите ему, что свойства были изменены. Поэтому я подозреваю, что вам может потребоваться уведомить ваше мнение об обновлении – ne1410s
Можете ли вы попробовать 'tabGrid1.Children.Insert (wrap1)'? – ViVi