组合框的第一项在WPF c#中仍然是空的
本文关键字:WPF 仍然是 一项 组合 | 更新日期: 2023-09-27 17:54:44
我的wpf中有一个combox和2个item,分别是:
- 。
我想使组合框在第一次加载WPF时显示一般消息(发送/接收)。我试图将字符串应用于XAML中的文本属性,但它不起作用:
<ComboBox x:Name="opBox" HorizontalAlignment="Left" Text="Send/Receive"/>
有没有办法应用这个文本,使它不会作为一个项目?
此外,当其中一个项目被选中时,我通过一个名为SelectionChanged的事件隐藏或显示相应的按钮。但如果用户再次选择一般消息发送/接收,我希望这两个按钮隐藏在一起。当我尝试在SelectionChanged中这样做时,我得到了一些错误。
更新:下面是我的SelectionChanged事件:
private void opBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (opBox.SelectedIndex == 1)//Send
{
mySendButton.Visibility = Visibility.Visible;
myReceiveButton.Visibility = Visibility.Hidden;
}
else if(opBox.SelectedIndex==2)//Receive
{
mySendButton.Visibility = Visibility.Hidden;
myReceiveButton.Visibility = Visibility.Visible;
ClearTextBox();
}
else if (opBox.SelectedIndex == 0)//Send or Receive
{
mySendButton.Visibility = Visibility.Hidden;
myReceiveButton.Visibility = Visibility.Hidden;
}
尝试设置IsEditable
和IsReadonly
的属性,如下所示:
<ComboBox x:Name="opBox" IsEditable="True" IsReadOnly="True" HorizontalAlignment="Left" Text="Send/Receive"/>
要阻止你的代码在InitializeComponent()
上崩溃,在opBox_SelectionChanged
上添加以下代码
if (mySendButton==null||myReceiveButton==null)
return;
还要注意,从事件处理程序直接管理控件属性不是WPF的方式。最好使用数据绑定和基于视图模型的方法来定制WPF UI行为。