我是一名 C++ 开发人员,最近开始学习 WPF。我正在开发一个使用 MVVM 的 wpf 应用程序。我有组合框,我需要在其中添加项目。尽管我通常使用 ComboboxPropertyName.Add("") 在其中添加项目,但我正在寻找一种有效的方法来添加项目而无需太多代码长度。这是代码:
XAML:
<ComboBox Height="23" ItemsSource="{Binding BoardBoxList}" SelectedItem="{Binding SelectedBoardBoxList, Mode=TwoWay}" SelectedIndex="0" Name="comboBox2" />
视图模型类:
public ObservableCollection<string> BoardBoxList
{
get { return _BoardBoxList; }
set
{
_BoardBoxList = value;
OnPropertyChanged("BoardBoxList");
}
}
/// <summary>
/// _SelectedBoardBoxList
/// </summary>
private string _SelectedBoardBoxList;
public string SelectedBoardBoxList
{
get { return _SelectedBoardBoxList; }
set
{
_SelectedBoardBoxList = value;
OnPropertyChanged("SelectedBoardBoxList");
}
}
以下是我在 C++ 中的组合框中添加项目的方式:
static const signed char boards[][9] = {
{}, // left blank to indicate no selection
{ 'S', '1', '0', '1', '0', '0', '1', '2', 0 }, // redhook
{ 'S', '1', '0', '1', '0', '0', '1', '8', 0 }, // bavaria
{ 'S', '1', '0', '1', '0', '0', '2', '0', 0 }, // flying dog
};
m_boardBox = new ComboBox(String::empty);
for(int i = 1; i < 4; i++)
m_boardBox->addItem(String((char*)(boards[i])), i);
m_boardBox->setSelectedId(2); // select Bavaria by default
addAndMakeVisible(m_boardBox);
如果您注意到上面,您会发现循环添加项目很容易。这就是我想将项目添加到我的组合框的方式。
如果我使用_BoardBoxList.Add("....");
我将不得不使用许多 .Adds。它们是一种有效的方式,我可以将项目存储在列表/集合中并以上面的形式将它们添加到组合框中for loop
吗?
请帮忙 :)