次のような配置の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
ます。どうすれば値を取得できますか?