0

Windows 8 Metro アプリの XAML で DataTemplate.DataTriggers を使用しようとすると、かなり奇妙なことが起こります。App.xaml で、データのテンプレートを定義しています。DataTriggers を使用したいのですが、VS2012 エディターで入力すると、次のようなエラーが表示されます。

添付可能なプロパティ 'DataTriggers' がタイプ 'DataTemplate' に見つかりませんでした。

メンバー「DataTriggers」が認識されていないか、アクセスできません。

DataTemplate の DataType プロパティを設定しようとすると、同様の問題が発生します。

プロパティ「DataType」がタイプ「DataTemplate」に見つかりませんでした。

ここで何が欠けていますか?DataTemplate はこれらがなくても問題なく動作しますが、プロジェクトでそれらを使用する方がはるかに簡単です。ここに私の XAML の短いスニペットがあります:

<DataTemplate x:Key="MyTemplate" >                
            <Grid HorizontalAlignment="Left" Width="450" Height="100">
                <Grid.RowDefinitions>
                    <RowDefinition/>
                    <RowDefinition/>
                    <RowDefinition/>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="10" />
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Rectangle Grid.Row="0" Grid.RowSpan="3" Stretch="UniformToFill" Width="10">
                    <Rectangle.Fill>
                        <SolidColorBrush Color="#FF425400" />
                    </Rectangle.Fill>
                </Rectangle>
                <TextBlock Text="{Binding Title}" Style="{StaticResource TitleTextStyle}" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="2"   />
                <TextBlock Text="{Binding Teaser}" Style="{StaticResource SubtitleTextStyle}"  Grid.Column="1" Grid.Row="1"  Grid.ColumnSpan="2"/>
                <TextBlock Text="{Binding Content}" Style="{StaticResource BasicTextStyle}" Grid.Column="1" Grid.Row="2"  />
                <TextBlock Text="{Binding TimeDesc}" Style="{StaticResource BasicTextStyle}" Grid.Column="2" Grid.Row="2"  />
            </Grid>       
            <DataTemplate.DataTriggers>

            </DataTemplate.DataTriggers>
        </DataTemplate>
4

1 に答える 1

4

トリガーは WPF でのみ使用でき、他の XAML プラットフォームでは使用できません。一般的な代替手段は、VisualStates、コンバーター、またはコードからの変更です。

于 2013-02-06T15:39:19.607 に答える