组合框第一项在 WPF c# 中保持为空
Combo Box 1st item is remained empty in WPF c#
我的 wpf 中有一个组合框和 2 个项目:
- 发送
- 收到。
我想让组合框在第一次加载 WPF 时显示一般消息(send/receive)。
我尝试将字符串应用于 XAML 中的文本 属性,但没有成功:
<ComboBox x:Name="opBox" HorizontalAlignment="Left" Text="Send/Receive"/>
有没有什么方法可以应用此文本,使其不再作为项目?
此外,当其中一项被选中时,我将通过名为 SelectionChanged 的事件隐藏或显示相应的按钮。但是如果用户再次选择一般消息 send/receive 我希望 2 个按钮一起隐藏。当我尝试在 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 行为。
我的 wpf 中有一个组合框和 2 个项目:
- 发送
- 收到。
我想让组合框在第一次加载 WPF 时显示一般消息(send/receive)。 我尝试将字符串应用于 XAML 中的文本 属性,但没有成功:
<ComboBox x:Name="opBox" HorizontalAlignment="Left" Text="Send/Receive"/>
有没有什么方法可以应用此文本,使其不再作为项目?
此外,当其中一项被选中时,我将通过名为 SelectionChanged 的事件隐藏或显示相应的按钮。但是如果用户再次选择一般消息 send/receive 我希望 2 个按钮一起隐藏。当我尝试在 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 行为。