WPF 组合框值
WPF combobox value
我在 xaml window 上有三个组合框 :
<Grid>
<ComboBox Name="cbo1" Margin="40,37,328,250" SelectionChanged="OnComboBoxChanged" />
<ComboBox Name="cbo2" Margin="40,145,328,142" SelectionChanged="OnComboBoxChanged"/>
<ComboBox Name="cbo3" Margin="40,91,328,196" SelectionChanged="OnComboBoxChanged" />
</Grid>
我在加载时将值分配给这些,我正在编写一个例程,该例程可以循环遍历具有这些组合框名称的数组并获取所选值:
string[] comboNameLst = {"cbo1","cbo2" , "cbo3" };
foreach (string s in comboNameLst)
{
ComboBox cbo = new ComboBox();
cbo.Name = s;
MessageBox.Show("ID is" + id + "and cbo is" + cbo.Name);
MessageBox.Show("selected item" + cbo.SelectedItem );
}
我得到的值为 null。我需要能够为这些下拉菜单获取选定的值
我知道我可以使用逻辑树助手循环遍历所有对象并获取值,但我不想那样做,因为我有太多控件,这将非常棘手。
无需在循环中创建新的组合框,您需要实际使用 UI:
中的框
ComboBox[] comboNameLst = {cbo1, cbo2, cbo3};
foreach (ComboBox cbo in comboNameLst)
{
MessageBox.Show("ID is" + id + "and cbo is" + cbo.Name);
MessageBox.Show("selected item" + cbo.SelectedItem );
}
我还想指出,您可以通过绑定完全避免此类代码。您可以使用 ItemsSource 将属性绑定到组合框,并像这样将 属性 绑定到 SelectedValue。
<ComboBox ItemsSource="{Binding ListProperty}"
DisplayMemberPath="ValueString"
SelectedValuePath="ValueString"
SelectedValue="{Binding SelectedValueProperty}" />
这会将当前选择的值直接提供给您的绑定属性,以便在您的代码中使用,而无需通过代码隐藏添加项目和获取它们当前选择的值的繁重工作。
Here 是一篇更详细的文章。
希望对您有所帮助。
我在 xaml window 上有三个组合框 :
<Grid>
<ComboBox Name="cbo1" Margin="40,37,328,250" SelectionChanged="OnComboBoxChanged" />
<ComboBox Name="cbo2" Margin="40,145,328,142" SelectionChanged="OnComboBoxChanged"/>
<ComboBox Name="cbo3" Margin="40,91,328,196" SelectionChanged="OnComboBoxChanged" />
</Grid>
我在加载时将值分配给这些,我正在编写一个例程,该例程可以循环遍历具有这些组合框名称的数组并获取所选值:
string[] comboNameLst = {"cbo1","cbo2" , "cbo3" };
foreach (string s in comboNameLst)
{
ComboBox cbo = new ComboBox();
cbo.Name = s;
MessageBox.Show("ID is" + id + "and cbo is" + cbo.Name);
MessageBox.Show("selected item" + cbo.SelectedItem );
}
我得到的值为 null。我需要能够为这些下拉菜单获取选定的值 我知道我可以使用逻辑树助手循环遍历所有对象并获取值,但我不想那样做,因为我有太多控件,这将非常棘手。
无需在循环中创建新的组合框,您需要实际使用 UI:
中的框ComboBox[] comboNameLst = {cbo1, cbo2, cbo3};
foreach (ComboBox cbo in comboNameLst)
{
MessageBox.Show("ID is" + id + "and cbo is" + cbo.Name);
MessageBox.Show("selected item" + cbo.SelectedItem );
}
我还想指出,您可以通过绑定完全避免此类代码。您可以使用 ItemsSource 将属性绑定到组合框,并像这样将 属性 绑定到 SelectedValue。
<ComboBox ItemsSource="{Binding ListProperty}"
DisplayMemberPath="ValueString"
SelectedValuePath="ValueString"
SelectedValue="{Binding SelectedValueProperty}" />
这会将当前选择的值直接提供给您的绑定属性,以便在您的代码中使用,而无需通过代码隐藏添加项目和获取它们当前选择的值的繁重工作。
Here 是一篇更详细的文章。
希望对您有所帮助。