3

次のように、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 をバインドしようとしましたが、これで問題は解決しません。私は何かを忘れましたか?

4

1 に答える 1