我有一个带有静态项目的ComboBox
<ComboBox SelectedItem="{Binding SelectedOperator}" >
<ComboBoxItem Content="=" IsSelected="True" />
<ComboBoxItem Content=">" />
<ComboBoxItem Content="<" />
</ComboBox>
但是虽然设置了IsSelected="True"
,但未选择第一项。
我能以某种方式在WPF中选择吗?如果真的有必要,我只想在代码隐藏中执行此操作。
答案 0 :(得分:2)
您可能想要使用ComboBoxItem的Content
字符串进行SelectedOperator
绑定,在这种情况下,您可以使用FallbackValue
:
<ComboBox SelectedValuePath="Content"
SelectedValue="{Binding SelectedOperator, FallbackValue=\=}">
<ComboBoxItem Content="=" />
<ComboBoxItem Content=">" />
<ComboBoxItem Content="<" />
</ComboBox>
答案 1 :(得分:1)
如果你绝对必须在XAML中保留所有内容,那么命名ComboBox并从其他元素绑定到SelectedItem可能是可行的。您将没有绑定到SelectedOperator以在VM /代码隐藏中使用,但这可能不是一个交易破坏者,具体取决于您的应用程序的设置方式。
<Grid x:Name="LayoutRoot" HorizontalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ComboBox x:Name="MyComboBox"
Grid.Row="0"
Width="80"
Height="25">
<ComboBoxItem Content="=" IsSelected="True" />
<ComboBoxItem Content=">" />
<ComboBoxItem Content="<" />
</ComboBox>
<TextBox Grid.Row="1" Text="{Binding ElementName=MyComboBox, Path=SelectedItem.Content}" />
</Grid>