私は今このコードに苦労していますし、私の質問に対する完全な答えを見つけることができないようです。私はこの問題を説明するために、少量のサンプルを作成しました:条件バインド属性が機能していませんか?
<ListView >
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Margin="0,0,20,0" IsItemsHost="True" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.Items>
<TextBlock>Test1</TextBlock>
<TextBlock>Test2</TextBlock>
<TextBlock>Test3</TextBlock>
<TextBlock>Test4</TextBlock>
<TextBlock>Test5</TextBlock>
</ListView.Items>
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<Grid>
<ContentPresenter/>
</Grid>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsMouseOver}" Value="True" />
<Condition Property="IsSelected" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Visibility" Value="Collapsed"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
</ListView>
マウスが選択した項目の上なくなったときにMultiTriggerの設定によると、選択した項目が再び表示されないはずです。ただし、このコードでは、InvalidOperationExceptionが生成されます。「 'Property'にはnull以外の値が必要です」というメッセージが表示されます。 "Binding"属性を使用するConditionを削除すると例外はスローされません。 MSDNドキュメントでは、プロパティまたはバインディング属性のいずれかを設定する必要があることを示しています。上記のコードは、Binding属性が設定されていないような機能です。実際、すべてのテストケースでは、Binding属性がどのように設定されているかは関係ありません。例外はスローされます。何かご意見は?
+1。他の人がこれに逆らって走ります。 "データ"という言葉が見当たりません。 –
+1実際に狩りをしてドキュメントを読むよりもはるかに速く私を解決するために。エラーは、ドキュメントに頼る代わりにこれを説明していたはずです。 – jpierson
+1ちょうど同じ骨頭の動きをしました。あなたの投稿はおそらく私を1時間節約しました。 –