5

ObservableCollectionオブジェクト内の文字列にバインドしているコンボボックスがあります。このバインドは機能しますが、ユーザーがこのコンボボックスから選択したものを、同じオブジェクト内の文字列である別のプロパティにバインドしたいと思います。SelectedValue使うべきかSelectedItem、それ以上の問題があるのか​​わからない。前もって感謝します。

これが私がこれまでに持っているものです、私は問題に関係のないコードを省略しました:

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;
    }
}
4

1 に答える 1

9

おそらく使用したいと思うでしょうSelectedItem。それはそれにバインドされた実際のアイテムを与えます。SelectedValueプロパティによって決定されSelectedValuePathます...この場合は不要です。また、おそらくをに設定したくないでしょUpdateSourceTriggerExplicit。その点では、デフォルトで問題ないはずです。

于 2012-06-21T14:15:07.193 に答える