我想將ComboBox的SelectedIndex屬性綁定到我的ViewModel。這是代碼。WPF Combobox SelectedIndex屬性綁定不工作
的XAML:
<ComboBox x:Name="BloodGroupFilter" SelectedIndex="{Binding Path=SelectedBloodGroupIndex, Mode=TwoWay}">
<ComboBox.ItemsSource>
<CompositeCollection>
<ComboBoxItem Foreground="red" FontStyle="Italic">No Filter</ComboBoxItem>
<CollectionContainer Collection="{Binding Source={StaticResource BloodGroupEnum}}"/>
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
視圖模型
private int _selectedBloodGroupIndex = 4;
public int SelectedBloodGroupIndex {
get { return _selectedBloodGroupIndex; }
set {
_selectedBloodGroupIndex = value;
}
}
正如你可以看到我想設置組合框的爲 「4」 的SelectedIndex的。這不會發生,並且SelectedIndex被設置爲0.另外,當用戶選擇組合框的特定項目時,我期望ViewModel的SelectedBloodGroupIndex屬性將自己更新爲當前選擇的組合框項目,但是這也不會發生。 ViewModel屬性永遠不會被調用(set和get)。上述代碼的綁定失敗的任何原因。
更新
<UserControl.Resources>
<ObjectDataProvider x:Key="BloodGroupEnum" MethodName="GetValues" ObjectType="{x:Type sys:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="enums:BloodGroup" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</UserControl.Resources>
如何和你在哪裏實例化視圖模型?你把它與視圖綁定在哪裏? – strmstn
我懷疑你沒有正確設置'DataContext'。輸出窗口是否提到綁定錯誤? – Joulukuusi
ViewModel由Caliburn Micro引導程序創建。該視圖也由Caliburn創建。我在View中有一些綁定到ViewModel的控件,這些綁定工作正常。這表明View正確綁定到ViewModel。唯一不起作用的是設置Combobox的SelectedIndex,如我的問題 – Jatin