繁体   English   中英

WPF组合框值

[英]WPF combobox value

我在xaml窗口上有三个组合框:

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

这将直接将当前选定的值提供给绑定属性,以供您在代码中使用,而无需费力地添加项目并通过后台代码获取其当前选定的值。

是更详细的文章。

我希望这有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM