我有一个组合框,它绑定到对象中的ObservableCollection
个字符串。这种绑定有效,但我也希望绑定用户从这个组合框中选择的任何内容,在同一个Object中的不同属性(字符串)中。我无法弄清楚是否应该使用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;
}
}
答案 0 :(得分:8)
您可能想要使用SelectedItem
。这将给出绑定它的实际项目。 SelectedValue
由SelectedValuePath
属性决定......在这种情况下,这是不必要的。
此外,您可能不希望将UpdateSourceTrigger
设置为Explicit
。在这方面,默认应该没问题。