次のように、viewmodel のプロパティにデータ バインドされたリボン コンボボックス (MS リボン 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 は選択された名前を表示しません。
何か提案はありますか?SelectedValue の代わりに SelectedItem をバインドしようとしましたが、これで問題は解決しません。私は何かを忘れましたか?