ComboBox SelectedValue或SelectedItem绑定WPF C#

时间:2012-06-21 14:09:58

标签: c# wpf data-binding combobox

我有一个组合框,它绑定到对象中的ObservableCollection个字符串。这种绑定有效,但我也希望绑定用户从这个组合框中选择的任何内容,在同一个Object中的不同属性(字符串)中。我无法弄清楚是否应该使用SelectedValueSelectedItem,或者是否存在问题。先感谢您。

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

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

1 个答案:

答案 0 :(得分:8)

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