ItemsControl 组合框 selecteditem C# WPF MVVM
Posted
技术标签:
【中文标题】ItemsControl 组合框 selecteditem C# WPF MVVM【英文标题】:ItemsControl combobox selecteditem C# WPF MVVM 【发布时间】:2021-09-16 05:33:46 【问题描述】:我有一个应用程序,当按下按钮时,会添加一个新对象“类别”,并且 UI 更新会插入一个 ComboBox 和一个 TextBlock:
如果我按下按钮: 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】:您需要在 ItemTemplate 的 XAML 中将 IsSynchronizedWithCurrentItem
设置为 false
。
【讨论】:
以上是关于ItemsControl 组合框 selecteditem C# WPF MVVM的主要内容,如果未能解决你的问题,请参考以下文章
获取组合框 SelectedIndex 数据并在 SELECT Query 中使用 - VB.net
尝试为 select2 组合框创建自定义数据适配器时,是啥导致“Uncaught TypeError baseName split is not a function”?