【问题标题】:ItemsControl combobox selecteditem C# WPF MVVMItemsControl 组合框 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);


        }

【问题讨论】:

    标签: c# wpf visual-studio xaml mvvm


    【解决方案1】:

    您需要在 ItemTemplate 的 XAML 中将 IsSynchronizedWithCurrentItem 设置为 false。

    【讨论】:

      猜你喜欢
      • 2018-05-03
      • 2017-02-20
      • 2021-10-15
      • 1970-01-01
      • 2021-07-27
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多