以数组的形式存储组合框项,并在 WPF 中检索 SelectedId

Store Combobox items in The Form of Array and Retrieve SelectedId in WPF

本文关键字:并在 WPF SelectedId 检索 数组 组合 存储      更新时间:2023-10-16

我是一名 c++ 开发人员,最近转移到这个令人惊叹的 WPF 世界。我正在开发一个 WPF 应用程序。我的 xaml 文件中有一个组合框(总线速率)。

<ComboBox Height="23" ItemsSource="{Binding BusRateList}" SelectedIndex="2" Name="comboBox2" Width="85" />

类具有以下属性:

public ObservableCollection<int> _busRate = new ObservableCollection<int>();
public ObservableCollection<int> BusRateList
    {
        get { return _busRate; }
        set
        {
            _busRate = value;
            NotifyPropertyChanged("BusRateList");
        }
    }

我添加的项目如下:

_busRate.Add(10);
_busRate.Add(50);
_busRate.Add(100);
_busRate.Add(200);
_busRate.Add(300);
_busRate.Add(400);
_busRate.Add(500);
_busRate.Add(600);      

这给了我组合框中的项目。但是我想将这些项目以包含所有这些值的数组的形式添加到我的组合框中。例如:

// C++ Code
static const char *busRate[8] = 
{
" 10", " 50", "100", "200", "300", "400", "500", "600"
};

从而允许我执行以下操作 OncomboBoxitemSelect 方法:

  • 从组合框中获取 SelectedId,并将其存储在整数变量中。
  • 传递此整数变量。演示如下:

    int id = comboBox->getSelectedId(); // C++ Code
    unsigned long speed = String(busRate[id-1]).getIntValue(); // C++ Code
    

如何在我的应用程序:)中实现这一点

您可以在 ViewModel 中创建 int 类型的新属性,以及将字符串转换为 int 值的转换器。现在,将新属性绑定到 ComboBox.SelectedItem-property:

<Window/UserControl/....Resouces>
    <local:YourConverter x:Key="TheConverter"/>
<Window/UserControl/....Resouces>
<ComboBox SelectedIten="{Binding Path=IntProp, Converter={StaticResource TheConverter}}"

编辑:

int id = Convert.ToInt32(BusRateList[comboBox.SelectedIndex]);
相关文章: