2011-12-13 15 views
1

I持っていそうスイッチングとの結合結合

public class BlogStore { 
    public ObservableCollection<Blog> blogs ... 

    public ObservableCollection<Blog> favourites ... 
} 

public BlogStore blogStore ... 

私は私ができるように、以下の結合

ItemsSource="{Binding blogStore.blogs} 

を行うコントロールを再利用したいがないような2 observablecollectionsが含まれているBlogStoreクラスfavouritesに切り替えると、次のようには動作しませんが、同様の状況で何かしたいと思います。

ItemsSource={Binding blogStore{Binding category, ElementName=blogControl} 

コントロールコードの背後には、依存関係プロパティがあります。

多分、コンバータがトリックを行うことができますか?

答えて

2

BlogStoreをViewModelとして扱うと、他のいくつかのプロパティが公開されます。

Categoryこれは、表示するカテゴリを選択するために使用するコントロールをバインドします。

またCategoryの値によってblogsまたはfavouritesのいずれかの値を返すCategoryBlogsプロパティもあります。

Categoryプロパティが変更されたときにPropertyChangedイベントが「カテゴリブログ」に対して発生するように、INotifyPropertyChangedを実装します。

ItemsSourceCategoryBlogsにのみバインドされます。

+0

どのようにViewModelにパラメータを渡すのですか?私はViewModelとしてblogStoreにプロパティを追加できますか? –

+0

カテゴリと呼ばれるDependencyPropertyとrelevantというプロパティを追加することでわかりました。これは依存関係のプロパティ値に応じてゲッターがブログかお気に入りのいずれかを返したものです。 –