WPF,访问组合框选择的项目
WPF, Access combobox selected item
我有一个组合框,其中有四个静态可能的选择,如下所示
MainWindow.xaml
<Grid>
<ComboBox Name="combobox" IsEditable="True" SelectionChanged="ComboBox_SelectionChanged" Text="Default Text"
<ComboBoxItem Name="ComboBoxItem1">1</ComboBoxItem>
<ComboBoxItem Name="ComboBoxItem2">2</ComboBoxItem>
<ComboBoxItem Name="ComboBoxItem3">3</ComboBoxItem>
<ComboBoxItem Name="ComboBoxItem4">4</ComboBoxItem>
</ComboBox>
<StackPanel Name="dock">
</StackPanel>
</Grid>
我正在为使用此方法选择的每个组合框项目创建一个扩展器。
MainWindow.xaml.cs
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var itemIndex = combobox.SelectedItem;
Expander expander = new Expander { Header = this.combobox.Name };
dock.Children.Add(expander);
}
我知道我可以访问组合框名称,但我不确定如何访问组合框项名称。我试过使用
Header = this.combobox.ComboBoxItem.Name
还有其他变体,但我没有成功。我只是想将每个扩展器的 header 变成组合框项的名称。感谢任何帮助。
你可以这样走:
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selectedItem= combobox.SelectedItem as ComboBoxItem;
if(selectedItem!=null)
{
string name = selectedItem.Name;
Expander expander = new Expander { Header = name };
dock.Children.Add(expander);
}
}
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var itemIndex = combobox.Text;
string name = (combobox.SelectedItem as ComboBoxItem).Name;
var obj = dock.FindName("Exp_Name");
if (obj == null)
{
Expander expander = new Expander();
expander.Header = name;
expander.Name = "Exp_Name";
dock.Children.Add(expander);
this.RegisterName(expander.Name, expander);
}
else
{
var element = obj as Expander;
element.Header = name;
}
}
希望对您有所帮助。
我有一个组合框,其中有四个静态可能的选择,如下所示
MainWindow.xaml
<Grid>
<ComboBox Name="combobox" IsEditable="True" SelectionChanged="ComboBox_SelectionChanged" Text="Default Text"
<ComboBoxItem Name="ComboBoxItem1">1</ComboBoxItem>
<ComboBoxItem Name="ComboBoxItem2">2</ComboBoxItem>
<ComboBoxItem Name="ComboBoxItem3">3</ComboBoxItem>
<ComboBoxItem Name="ComboBoxItem4">4</ComboBoxItem>
</ComboBox>
<StackPanel Name="dock">
</StackPanel>
</Grid>
我正在为使用此方法选择的每个组合框项目创建一个扩展器。
MainWindow.xaml.cs
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var itemIndex = combobox.SelectedItem;
Expander expander = new Expander { Header = this.combobox.Name };
dock.Children.Add(expander);
}
我知道我可以访问组合框名称,但我不确定如何访问组合框项名称。我试过使用
Header = this.combobox.ComboBoxItem.Name
还有其他变体,但我没有成功。我只是想将每个扩展器的 header 变成组合框项的名称。感谢任何帮助。
你可以这样走:
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selectedItem= combobox.SelectedItem as ComboBoxItem;
if(selectedItem!=null)
{
string name = selectedItem.Name;
Expander expander = new Expander { Header = name };
dock.Children.Add(expander);
}
}
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var itemIndex = combobox.Text;
string name = (combobox.SelectedItem as ComboBoxItem).Name;
var obj = dock.FindName("Exp_Name");
if (obj == null)
{
Expander expander = new Expander();
expander.Header = name;
expander.Name = "Exp_Name";
dock.Children.Add(expander);
this.RegisterName(expander.Name, expander);
}
else
{
var element = obj as Expander;
element.Header = name;
}
}
希望对您有所帮助。