小编dan*_*dan的帖子

条件绑定属性不起作用?

我一直在努力使用这段代码一段时间,似乎无法找到我的问题的任何完整答案.我创建了一个小样本来说明问题:

<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>
Run Code Online (Sandbox Code Playgroud)

根据MultiTrigger设置,当鼠标不再位于所选项目上时,应重新显示所选项目.但是,此代码会生成一个InvalidOperationException,并显示消息"必须具有'Property'的非空值." 如果删除使用"绑定"属性的条件,则不会抛出异常.在MSDN文档中,它声明您必须设置Property或Binding属性.未设置上述代码函数,如Binding属性.实际上,在我的所有测试用例中,Binding属性的设置并不重要; 仍然抛出异常.有什么想法吗?

wpf binding conditional-statements

20
推荐指数
1
解决办法
1万
查看次数

标签 统计

binding ×1

conditional-statements ×1

wpf ×1