I持って私のXAMLで、次の星座:プレビューXなしのDataTemplate:ListBoxコントロールにバインドされたキー使用してExpression BlendのSampleDataを
次のDataTemplateは、データ型を介して適用される<ListBox x:Uid="attributesListBox"
DataContext="{Binding Source={StaticResource EditFeatureWithForeignKeyAttributesViewModel}}" ItemsSource="{Binding Path=Attributes}"
d:DataContext="{d:DesignData /SampleData/BlendableAttributesSampleData.xaml}">
</ListBox>
:
<DataTemplate x:Uid="dataColumnFeatureAttributeDataTemplate" DataType="{x:Type DataColumnFeatureAttribute}">
<!-- ... opens a button and a grid ... -->
<TextBlock Text="{Binding EditCaption}" />
<!-- ... closes button and grid ... -->
</DataTemplate>
「備考」セクションのhereで説明したように、x:Keyは暗黙的に生成され、「DataTemplateはその型のデータオブジェクトに自動的に適用されます。
DataTemplate内では、リスト項目のいくつかの簡単なプロパティがバインドされています。私のSampleDataをからの抜粋では、上記の参照EditCaptionプロパティを見つける - それは単純な文字列だし、リストボックスのDataContextのとのItemsSourceが収まる必要があります。
<SampleData:BlendableAttributes xmlns:SampleData="clr-namespace:Commons.Mobile.SampleData">
<SampleData:BlendableAttributes.Attributes>
<Mobile_Client:FeatureAttribute DisplayCaption="Vestibulum adipiscing curabitur" DisplayString="Class maecenas parturient" ErrorMessage="Nunc amet aliquam nam sed" EditCaption="Cras phasellus duis" IsEditable="True" IsSearchable="False" IsViewable="True" Modified="False">
<Mobile_Client:FeatureAttribute.Feature>
<!-- ... Feature with a lot of properties ... -->
</Mobile_Client:FeatureAttribute.Feature>
</Mobile_Client:FeatureAttribute>
<!-- ... more FeatureAttributes ... -->
</SampleData:BlendableAttributes.Attributes>
</SampleData:BlendableAttributes>
I場合のDataTemplateは、プレビューに正しく適用されていますそれをx:Keyで参照してください。リストにはさまざまな種類のオブジェクトが含まれているため、この場合は不可能なので、暗黙的なx:Keyを使用して、オブジェクト型に従って特定のDataTemplateを適用する必要があります。
は、だから私のVMからのデータと、実行時には問題ありませんが、私は、ページ全体で
- Expression Blendが、しかし、のDataTemplateを適用せずにSampleDataをを示しています一方、私がリソースにアクセスしてDataTemplateを編集すると、SampleDataのないレイアウトが表示されます。
私はいくつかのことを試してみて、フォーラムで解決策を探しましたが、誰もこの特別な星座を持っていないようです。誰かが私を助けることができますか?
こんにちはと返事が遅れて申し訳ありません - 私は今まで、あなたの答えを認識していませんでした。 残念ながら、私のシステム構成は変更されているため、ライセンスの問題のためにプロジェクトをもう構築できません。小さなデモアプリケーションで同じコンステレーションを構築したとき、私は全く問題はありませんでした:DataTemplateは、DesignDataに設定されたSampleDataのビルドタイプでもDataTypeによって自動的に適用されました。 大規模なプロジェクトでは単に愚かな副作用がありました。とにかく、あなたの助けをありがとう! – pnolle