5

我有一个组合框,它绑定到ObservableCollection对象中的一个字符串。此绑定有效,但我还想将用户从此组合框中选择的任何内容绑定到同一个对象中的另一个字符串属性中。我不知道是否应该使用SelectedValueor 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. 这将给出绑定到它的实际项目。SelectedValueSelectedValuePath属性决定......在这种情况下这是不必要的。此外,您可能不想将 设置UpdateSourceTriggerExplicit. 在这方面,默认值应该没问题。

于 2012-06-21T14:15:07.193 回答