0

次のような配置のBookアプリがあるとします。いくつかのページタイプがあります

  • 通常

  • 写真付き

  • 写真のみ

  • 等...

この各ページには多くのブックマークを付けることができます。すべてを正しく表示するために、このようなデータテンプレートセレクターを作成しました

Page.xaml

 <Pages:PageTypeSelector Content="{Binding}">
    <Pages:PageTypeSelector.Regular>
       <DataTemplate>
           <Grid HorizontalAlignment="Stretch">  
                <!-- Show regular content here-->
                <Bookmark:BookmarkView />
           </Grid>
        </DataTemplate>
    </Pages:PageTypeSelector.Regular>

    <Pages:PageTypeSelector.WithPicture>
       <DataTemplate>
           <Grid HorizontalAlignment="Stretch">  
                <!-- Show mixed content here-->
                <Bookmark:BookmarkView />
           </Grid>
        </DataTemplate>
    </Pages:PageTypeSelector.WithPicture>

   <Pages:PageTypeSelector.OnlyPicture>
       <DataTemplate>
           <Grid HorizontalAlignment="Stretch">  
                <!-- Show picture content here-->
                <Bookmark:BookmarkView />
           </Grid>
        </DataTemplate>
    </Pages:PageTypeSelector.WithPicture>
 </Pages:PageTypeSelector>

ブックマークビューがどのように見えるかは今は重要ではありません(各ページのブックマークが表示されるだけです)

PageId問題は、ブックマークコントロールがサービスからブックマークを取得できるように、プロパティを設定する必要があることです。

プロパティを追加しましたBookmarkView.xmal.cs

public Guid PageId
{
    get { return _pageId; }
    set
    {
        _pageId= value;
        _viewModel.PageId= value; // Here I wanted to pass the same value to the 
                                  // viewModel which would doo the job then
    }
}

私はそれからこのようなことをしようとしました

<Bookmark:BookmarkView PageId={Binding PageId, Mode=TwoWay}/>

入力中にIntellisenseがPageIdを提案していましたが、何も起こりません。

PageIdをビューに渡すにはどうすればよいですか?

編集:に変更

public object PageId
{
    get { return _pageId; }
    set
    {
        _pageId= value;
    }
}

valueがタイプであることを示していSystem.Windows.Data.Bindingます。どうすれば値を取得できますか?

4

1 に答える 1

1

PageIDの依存関係プロパティを作成します。

于 2012-10-19T15:14:58.613 に答える