簡體   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