ComboBox ItemsSource具有与SelectedItem不同的datacontext

时间:2012-07-18 20:50:00

标签: wpf data-binding combobox selecteditem itemssource

我有ComboBox,我从我的“Settings”对象中获取了我的ItemsSource,里面有UserTypes ObservableCollection,我需要将其SelectedItem绑定到我的“Employee”对象的type属性。窗口中还有其他字段,它们与“Employee”对象中的其他属性正确绑定,ItemsSource在Settings中正确填充了UserTypes属性,唯一不起作用的是不与combobo绑定的type属性'x selecteditem,可能是因为它的datacontext设置为“Settings”对象。以下是我到目前为止的情况:

<CollectionViewSource x:Key="settingsViewSource" d:DesignSource="{d:DesignInstance my:Settings, CreateList=True}" />
<CollectionViewSource x:Key="settingsUserTypesViewSource" Source="{Binding Path=UserTypes, Source={StaticResource settingsViewSource}}" />

<ComboBox DataContext="{StaticResource settingsUserTypesViewSource}" Name="userTypeBox" VerticalAlignment="Top" Width="100" Margin="2" ItemsSource="{Binding}"
SelectedItem="{Binding Path=Type, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}">

在后面的代码中,我有:

        InitializeComponent();
        this.emp = emp;
        InfoTab.DataContext = emp;
        userTypeBox.DataContext = MainWindow.ViewSettings.UserTypes;

\ temp是正确绑定到字段的特定员工,只有组合框的选择项不起作用。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我不知道你的实际代码中是否有拼写错误,或者它是否只是在这里,但你错过了一个括号

SelectedItem="Binding Path=Type, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"

应该是

SelectedItem="{Binding Path=Type, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"