ドキュメントを検索しましたが、明らかに Windows Phone 8 の PriorityBinding はありません。Windows Phone 8 の XAML で同じ動作を実現する同様の方法はありますか?
ListItem のスタイルを作成しました。
<DataTemplate x:Key="ListItem">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="50" />
</Grid.ColumnDefinitions>
<Image
Grid.Column="0"
Source="{Binding Path=ImageSource}" />
<TextBlock
Grid.Column="1"
TextWrapping="NoWrap"
TextTrimming="WordEllipsis"
Text="{Binding Path=Text}" />
<Image
Grid.Column="2"
Source="/images/arrow_right.png" />
</Grid>
</DataTemplate>
今度は PriorityBinding を追加したいので、ImageSource または Text が空の場合はプレースホルダーを追加します。
私はWPFのこの例を見つけました:
<Image.Source>
<PriorityBinding FallbackValue="/images/default_category.png">
<Binding Path="ImageSource"/>
</PriorityBinding>
</Image.Source>
[...]
<TextBlock.Text>
<PriorityBinding FallbackValue="Placeholder Text">
<Binding Path="Text"/>
</PriorityBinding>
</TextBlock.Text>
App.xaml の ImageSource に PriorityBinding を追加しようとすると、次のエラーが発生します。
The type 'PriorityBinding' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.
編集
ImageSource をモデルの ImageSource プロパティにバインドしたいのですが、データがない場合は、モデルの (空の) ImageSource の代わりにプレースホルダーをイメージとして使用したいと考えています。
同じことが TextBlock にも当てはまります。モデル内のテキストが空の場合、プレースホルダー テキスト (「データなし」など) を表示したいと考えています。