質問

以下は動作しません、なぜ誰も教えてくれますが、それはありません1の後にすることはできますか?後者の明示的な使い方対値=構文に注目してください。私は違いを理解していない。

<Style.Triggers>
    <DataTrigger Binding="{Binding ItemType}" Value="{x:Type log:FranchiseAiring}">
        <Setter Property="Template" Value="{StaticResource FranchiseRowStyle}" />
    </DataTrigger>
</Style.Triggers>

上記正常に動作します以下、例外がスローされます

<Style.Triggers>
<DataTrigger Binding="{Binding ItemType}">
    <DataTrigger.Value>
        <x:Type Type="{x:Type log:FranchiseAiring}" />
    </DataTrigger.Value>
    <Setter Property="Template" Value="{StaticResource FranchiseRowStyle}" />
</DataTrigger>

例外: の両方DataTriggerのバインディングと値を指定する必要があります。マークアップファイル内のオブジェクトのSystem.Windows.DataTrigger 'でのエラー ';コンポーネント/ ResourceDictionaries / LogStyles.xaml' 行14位15

スタックトレース:    System.Windows.Markup.XamlParseException.ThrowException(文字列メッセージ、例外のInnerException、のInt32 LINENUMBER、のInt32 linePosition、ウリBASEURIで、

役に立ちましたか?

解決

それはそれはおそらくバグが原因アヌラーグはにリンクされていますが、使用の2つの例では、ビューのXAML点から正確に同一ではないことに注意する必要があります。

あなたは要素のプロパティの構文にこれを変換する場合は、

Value="{x:Type whatever}"

何を取得することはあります:

<DataTrigger.Value>
  <x:Type TypeName="whatever">
</DataTrigger.Value>

あなたは、あなたの質問に書いたことは、実際に対応します。

Value="{x:Type Type={x:Type whatever}}"

そのためTypeExtensionのセマンティクスの、両方が私は考えることができるすべての状況で同じ値を生成するべきです。しかし、他の目的のために、彼らは異なる場合があり、彼らはWPFで異なるバグをくすぐることがあります。

このため、Value="{x:Type Type={x:Type log:FranchiseAiring}}"があなたのために働くかもしれないということも可能です。あなたはそれを試してみて、調べたいことがあります。

他のヒント

これは修正されているバグです。これをチェックして: ます。http://social.msdn。 microsoft.com/Forums/en/wpf/thread/3fd23613-6f1d-4ae6-a279-b99d6fdbc374する

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top