【问题标题】:How to fire the Combobox Selection Changed event if there's only 1 entry in the drop down如果下拉菜单中只有 1 个条目,如何触发 Combobox Selection Changed 事件
【发布时间】:2019-10-17 18:26:56
【问题描述】:

我在 WPF 中有一个组合框,并且我正在使用 MVVM 模式。当组合框项目选择发生变化时,它会触发一个事件来做一些事情。但是如果下拉列表中只有一个条目,它会在我第一次选择它时触发该事件。之后,如果我再次选择它,它将不会调用 SelectionChanged 事件。有没有办法做到这一点?

这是我的代码:

  <ComboBox x:Name="DataComboBox" MinWidth="125" Text="" Margin="5,3" VerticalAlignment="Center"  Grid.Row="8" Grid.Column="1" Style="{StaticResource ComboBoxFlatStyle}"
    IsEditable="True" IsReadOnly="True" ItemsSource="{Binding ComboBoxList}" DisplayMemberPath="Scan_File_Name" SelectedItem="{Binding SelectedItems}"></ComboBox>

    private string selectedItem;

    public string SelectedItem
    {
        get { return selectedItem; }
        set
        {
            if (value != selectedItem)
            {
                selectedItem= value;
                OnPropertyChanged("SelectedItem");
                SelectedItemsChanged();
            }

        }
    }


    private void SelectedImagesChanged()
    {
          //Do some work
    }

【问题讨论】:

    标签: c# wpf mvvm


    【解决方案1】:

    在 WPF 中,选择更改事件仅在值更改时发生。下拉组合框并单击同一条目不会更改所选条目。因此不会触发任何事件。

    还有其他方法可以做你想做的事,但不太可能需要它们。
    可以捕获单击组合框中条目的单击事件,并将其处理为与更改选择相同
    如果需要刷新表单上的数据,可以添加一个 REFRESH DATA 按钮。

    【讨论】:

      猜你喜欢
      • 2016-02-10
      • 1970-01-01
      • 2015-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多