gpt4 book ai didi

wpf - 条件绑定(bind)属性不起作用?

转载 作者:行者123 更新时间:2023-12-03 12:02:39 24 4
gpt4 key购买 nike

我一直在为这段代码苦苦挣扎一段时间,似乎无法找到我的问题的任何完整答案。我创建了一个小样本来说明问题:

<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’ 必须具有非空值”。如果您删除使用“绑定(bind)”属性的条件,则不会引发异常。在 MSDN 文档中,它声明您必须设置 Property 或 Binding 属性。上面的代码功能,比如Binding属性没有设置。事实上,在我所有的测试用例中,将 Binding 属性设置为什么并不重要;仍然抛出异常。有什么想法吗?

最佳答案

这是你必须接受它并承认你犯了一个愚蠢的错误的时候之一。然而,为了拯救其他不幸的灵魂免于同样的命运,我会显露出我的顿悟。

首先,如果我阅读了所有文档,我会阅读如果您使用条件的“绑定(bind)”属性的部分,它需要包含在 MultiDataTrigger 元素中(而不是我发布的示例中的 MutiTrigger 元素) .

其次,在进行这些更改后,MultiTrigger 元素将替换为以下代码:

<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsMouseOver}" Value="True" />
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsSelected}" Value="True"/>
</MultiDataTrigger.Conditions>
<Setter Property="Visibility" Value="Collapsed"/>
</MultiDataTrigger>

现在该示例有效,但由于所选项目已折叠,触发条件来回切换,导致所选项目闪烁进出 View 。有道理,但诚然不是我想要的。

无论如何,希望这可以帮助某人避免犯同样的愚蠢错误!

关于wpf - 条件绑定(bind)属性不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1256429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com