我有一个功能区组合框(MS Ribbon OpenSource 项目,.Net 4.0),它是绑定到我的视图模型属性的数据,如下所示:
XAML:
<ribbon:RibbonComboBox SelectionBoxWidth="130" Margin="3,0">
<ribbon:RibbonGallery
SelectedValue="{Binding Source={StaticResource ViewModel},
Path=Document, Converter={StaticResource DocumentToDocumentNameConverter}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<ribbon:RibbonGalleryCategory
ItemsSource="{Binding Source={StaticResource ViewModel},
Path=Documents, Converter={StaticResource DocumentToDocumentNamesConverter}}">
</ribbon:RibbonGalleryCategory>
</ribbon:RibbonGallery>
</ribbon:RibbonComboBox>
视图模型:
public ViewModel {
#region Fields
private TestDocument _Document;
#endregion
#region Properties
public TestDocument Document
{
get
{
return ModelClass.SelectedDocument;
}
set
{
if (value != null && value != _Document)
{
_Document = value;
OnPropertyChanged("Document");
}
}
}
#endregion
}
这很好用,如果我在 ComboBox 中选择另一个值,则输入转换器并显示该值。
但是如果我像这样在 ViewModel 中设置属性
Document = new TestDocument("DocumentName");
ComboBox 不显示选定的名称。
你有什么建议吗?我什至尝试绑定 SelectedItem 而不是 SelectedValue 但这并不能解决问题。我忘记了什么吗?