C# 在组合框中的XAML中设置默认值
我正在尝试为组合框设置默认值。我有创建代码表的脚本,因此不能这样编写代码:C# 在组合框中的XAML中设置默认值,c#,wpf,xaml,C#,Wpf,Xaml,我正在尝试为组合框设置默认值。我有创建代码表的脚本,因此不能这样编写代码: <StackPanel> <ComboBox SelectedValue="CA"> <ComboBoxItem Tag="CO">Colorado</ComboBoxItem> <ComboBoxItem Tag="CA">California</ComboBoxItem> <ComboBoxItem Tag="NM"
<StackPanel>
<ComboBox SelectedValue="CA">
<ComboBoxItem Tag="CO">Colorado</ComboBoxItem>
<ComboBoxItem Tag="CA">California</ComboBoxItem>
<ComboBoxItem Tag="NM">New Mexico</ComboBoxItem>
</ComboBox>
</StackPanel>
科罗拉多州
加利福尼亚
新墨西哥州
相反,我在XAML中有一些代码:
<StackPanel HorizontalAlignment="Left" Margin="10,5,0,0" Name="PersonStackPanel" Height="60">
<Label VerticalContentAlignment="Top" FontWeight="Normal" Height="28" HorizontalAlignment="Left">Person</Label>
<ComboBox Name="PersonComboBox" Width="312" Props.CodeProvider="MASTCODE.TYPE.ARRA" DisplayMemberPath="NAME" Tag="AA" IsSelected="True" SelectedValuePath="CODE" SelectedItem="{Binding Path=PERSON}"/>
<StackPanel>
人
我原以为Tag=“AA”IsSelected=“True”会起作用,但事实并非如此。组合框中显示的任何值都必须作为选择项出现 尝试:
编辑:添加引号在ViewModel中将Person设置为适当的值(如果需要默认项,可能是构造函数) 并将绑定更改为
SelectedItem="{Binding Path=PERSON, Mode=TwoWay}"
您正在使用
SelectedValuePath="CODE"
因此,在这种情况下,尝试设置SelectedValue而不是SelectedItem谢谢各位,我认为这样做可以:
<ComboBox Name="PersonComboBox" Width="312" SelectedItem="{Binding Path=PERSON}" SelectedIndex="0" >
<ComboBoxItem Tag="AA">Adam</ComboBoxItem>
</ComboBox>
亚当
我想我困惑的是,因为我有一个创建combobox项的脚本,所以我不需要在XAML中创建它。但只要我能将数据保存到“Person”列中,我就可以使用它。为什么在您的第二个代码示例中使用Tag而不是SelectedValue?Person是否存储在ViewModel中?@RandRandom我以为它会从脚本中获取标记。@BobbyRicky Tag什么都不做。标记只是一个简单的对象,主要用作与控件关联的所有内容的垃圾箱,它没有其他用途,至少在过去100年中一直存在:D.如果要选择默认值,则必须说SelectedValue=“CA”(其中ComboBoxItem的值必须符合此值)-SelectedIndex=0(其中ComboBoxItem的索引必须符合此值)-或者您所说的最好的SelectedItem=SomeCLRobject(其中ComboxItem的项目必须符合此值)
但是
您应该真正查看项目资源注意:此更改组合框中显示的值,但在用户实际更改选择之前,不会更改基础绑定值。因此,就触发意外/意外行为而言,它可能非常危险。不显示第一个值。
SelectedValuePath="CODE"
<ComboBox Name="PersonComboBox" Width="312" SelectedItem="{Binding Path=PERSON}" SelectedIndex="0" >
<ComboBoxItem Tag="AA">Adam</ComboBoxItem>
</ComboBox>