0

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

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

我的 Viewmodel 类具有以下属性:

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"
};

从而允许我在comboboxitemselected 方法上执行以下操作:

  • 从 Combobox 中获取 SelectedId 并将其存储在一个整数变量中。
  • 传递这个整数变量。演示如下:

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

我怎样才能在我的应用程序中实现这一点:)

4

1 回答 1

1

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

<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]);
于 2012-10-08T17:24:55.007 回答