2012-06-21 20 views
5

オブジェクトの文字列のObservableCollectionにバインドしているコンボボックスがあります。このバインディングは機能しますが、同じコンボボックスから、ユーザーが選択したものを、同じオブジェクトの文字列である別のプロパティにバインドしたいと考えています。私はSelectedValueSelectedItemのどちらを使うべきか、それ以上の問題があるかどうかは分かりません。前もって感謝します。 XAMLでComboBox SelectedValueまたはSelectedItemバインディングWPF C#

:背後

<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を使用します。それはそれに縛られた実際のアイテムを与えるでしょう。 SelectedValueは、SelectedValuePathというプロパティによって決まります。この場合、これは不必要です。 また、UpdateSourceTriggerExplicitに設定したくない場合もあります。その点でデフォルトは正常であるはずです。

関連する問題