2012-06-21 58 views
5

我有一个组合框绑定到一个对象中的字符串ObservableCollection。这个绑定的工作原理,但我也想绑定任何用户从这个组合框中选择,在一个不同的属性是一个字符串,在同一个对象。我无法弄清楚我是否应该使用SelectedValueSelectedItem,或者是否有问题。先谢谢你。组合框SelectedValue或SelectedItem绑定WPF C#

这是我到目前为止,我已经省略无关的问题,任何代码:

在XAML:

<Grid.Resources> 
    <my:JobItem x:Key="jobItemViewSource" /> 
</Grid.Resources> 

<ComboBox x:Name="businessUnitBox" ItemsSource="{Binding Path=BusinessUnits}" IsSynchronizedWithCurrentItem="True"> 
    <ComboBox.SelectedValue> 
     <Binding Path="BusinessUnit" Mode="TwoWay" UpdateSourceTrigger="Explicit" /> 
    </ComboBox.SelectedValue> 
</ComboBox> 

后面的代码:

public string BusinessUnit 
{ 
    get{ return businessUnit; } 
    set 
    { 
     if (String.IsNullOrEmpty(BusinessUnit) || !BusinessUnit.Equals(value)) 
     { 
      businessUnit = value; 
      OnPropertyChanged("BusinessUnit"); 
     } 
    } 

} 

public ObservableCollection<string> BusinessUnits 
{ 
    get { return businessUnits; } 
    set 
    { 
     if(!BusinessUnits.Equals(value)) 
     { 
      businessUnits = value; 
      OnPropertyChanged("BusinessUnits"); 
     } 

     businessUnits = value; 
    } 
} 
+0

这可能会回答你的问题... http://stackoverflow.com/questions/2883481/combobox-selecteditem-vs-selectedvalue –

回答

8

您可能想要使用SelectedItem。这会给与它绑定的实际项目。 SelectedValueSelectedValuePath属性决定......在这种情况下,这只是不必要的。 另外,您可能不希望将UpdateSourceTrigger设置为Explicit。在这方面,默认值应该没问题。

相关问题