#c# #wpf #visual-studio #xaml #mvvm
Вопрос:
у меня есть приложение , в котором при нажатии кнопки добавляется новый объект «Категория», а обновление пользовательского интерфейса вставляет поле со списком и текстовый блок :
если я нажму кнопку : m/DYQCN.png
Но когда я выбираю элемент, каждый из выпадающих списков меняется :
Как этого избежать ?
Это мой код :
XAML
<ItemsControl x:Name="icc" ItemsSource="{Binding Path=Categorie,UpdateSourceTrigger=PropertyChanged}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<ComboBox SelectedValue="{Binding c_nome_categoria , Mode=TwoWay}" Background="White" BorderBrush="Brown" BorderThickness="1" HorizontalAlignment="Left" Width="150" Grid.Column="1" ItemsSource="{Binding ElementName=icc, Path=DataContext.listaCategorie}" IsSynchronizedWithCurrentItem="True" DisplayMemberPath="nomeCategoria" ></ComboBox>
<TextBox Text="{Binding contenutoCategoria}" materialDesign:HintAssist.Hint="Inserisci gli oggetti" AcceptsReturn="True"></TextBox>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Модель представления :
private BindingList<Categoria> _listaCategorie = new BindingList<Categoria>();
public BindingList<Categoria> listaCategorie
{
get { return _listaCategorie; }
set
{
_listaCategorie = value;
OnPropertyChanged("listaCategorie");
}
}
private BindingList<CategorieValigia> _Categorie = new BindingList<CategorieValigia>();
public BindingList<CategorieValigia> Categorie
{
get { return _Categorie; }
set
{
_Categorie = value;
OnPropertyChanged("Categorie");
}
}
public void InserisciCategoria()
{
listaCategorie = getCategorie();
CategorieValigia cv = new CategorieValigia();
Categorie.Add(cv);
}
Ответ №1:
Вам нужно установить IsSynchronizedWithCurrentItem
значение false
в XAML вашей таблички элементов.