在运行时更改SelectedValuePath

时间:2015-11-26 10:36:42

标签: c# wpf

我有一个组合框,它被绑定到具有数字和数字等属性的实体集合。名称。最初我将我的组合框SelectedValuePath设置为NAME。

<my1:ComboBox Name="LHScmb" 
              Width="Auto" 
              Height="Auto" 
              Grid.Row="0" 
              Grid.Column="0" 
              IsEditable="False" 
              DisplayMemberPath="VARNAME" 
              SelectedValuePath="NAME"
              ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}},Path=DataContext.BRPARMINPT}"
              SelectedValue="{Binding LHSITEMSRCECDE, UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"   
              SelectionChanged="cmbLHS_SelectionChanged"/>

在某些情况下,当name为null时,我将组合框的SelectedValuePath更改为number。如下面的示例代码所示

if (item.NAME == null)
{
   LHScmb.SelectedValuePath = "NUMBER";
}

但这会产生异常输入字符串的格式不正确

还有其他方法可以在运行时设置SelectedValuePath。

1 个答案:

答案 0 :(得分:2)

我认为您的问题不是设置SelectedValuePath,而是您的NUMBER属性是数字。因此,如果组合框中有一个字符串无法解释为数字,并且突然您尝试将其绑定到数字属性,则会出现此错误。