Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果使用绑定/转换器,ComputedVerticalScrollBarVisibility触发器不工作_C#_Wpf_.net 3.5 - Fatal编程技术网

C# 如果使用绑定/转换器,ComputedVerticalScrollBarVisibility触发器不工作

C# 如果使用绑定/转换器,ComputedVerticalScrollBarVisibility触发器不工作,c#,wpf,.net-3.5,C#,Wpf,.net 3.5,这个问题与我们的关系非常密切,但这个问题更为具体。请随意转到另一个问题了解更多细节,但我应该在这里提供您需要的一切 我已经为我的listview实现了一个自定义样式,这样我就可以使用以下命令访问滚动条属性(我删除了一些不相关的杂项) 注意我有两个触发器,一个用于可见,另一个用于折叠。当我运行我的应用程序时,我会看到一个可见的,然后是一个折叠的。我甚至用定时器延迟加载数据,但没有触发任何可见的是否有我遗漏的东西,或者这是一个依赖属性未正确触发的错误? 更新 因此,我注意到一个赤裸裸的版本正在运

这个问题与我们的关系非常密切,但这个问题更为具体。请随意转到另一个问题了解更多细节,但我应该在这里提供您需要的一切

我已经为我的listview实现了一个自定义样式,这样我就可以使用以下命令访问滚动条属性(我删除了一些不相关的杂项)


注意我有两个触发器,一个用于
可见
,另一个用于
折叠
。当我运行我的应用程序时,我会看到一个
可见的
,然后是一个
折叠的
。我甚至用定时器延迟加载数据,但没有触发任何可见的
是否有我遗漏的东西,或者这是一个
依赖属性未正确触发的错误?

更新


因此,我注意到一个赤裸裸的版本正在运行(不使用绑定和转换器),所以我从代码中删除了它,并让触发器简单地更新背景颜色。而且,它是有效的,那么为什么添加绑定/转换器会弄乱触发器呢?

好吧,答案肯定对我没有帮助,但绑定中的值似乎是缓存的。由于我的codebehind转换器更像是一种黑客行为,目的是获得对计算触发器的代码访问权限,所以我甚至没有使用返回值。但是,我继续将唯一的颜色值绑定到每个触发器上,当滚动条变为可见时,我的代码不再被点击,而是使用了最初调用的返回值。我必须承认,这在微软团队中是相当聪明的,但对我来说却是一个绊脚石。如果用户具有用于每个触发器的时间相关值,该怎么办

<Style x:Key="{x:Static GridView.GridViewScrollViewerStyleKey}" TargetType="ScrollViewer">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ScrollViewer">
                <Grid Background="{TemplateBinding Background}">
                    <DockPanel Margin="{TemplateBinding Padding}">
                        <ScrollViewer DockPanel.Dock="Top" Focusable="false">   
                    </DockPanel>
                    <ScrollBar Name="PART_HorizontalScrollBar" Orientation="Horizontal"  Grid.Row="1" Maximum="{TemplateBinding ScrollableWidth}" ViewportSize="{TemplateBinding ViewportWidth}" Value="{TemplateBinding HorizontalOffset}" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"/>
                    <ScrollBar Name="PART_VerticalScrollBar" Grid.Column="1" Margin="20,0" Maximum="{TemplateBinding ScrollableHeight}" ViewportSize="{TemplateBinding ViewportHeight}" Value="{TemplateBinding VerticalOffset}" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>
                </Grid>
                <ControlTemplate.Triggers>
                    <Trigger Property="ComputedVerticalScrollBarVisibility" Value="Collapsed">
                        <Setter Property="Width">
                            <Setter.Value>
                                <Binding  
                                    ConverterParameter="400" 
                                    RelativeSource="{RelativeSource FindAncestor,AncestorType={x:Type ListView}}"
                             >
                                    <Binding.Converter>
                                        <Converters:ListViewColumnResizeConverter/>
                                    </Binding.Converter>
                                </Binding>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                    <Trigger Property="ComputedVerticalScrollBarVisibility" Value="Visible">
                        <Setter Property="Width">
                            <Setter.Value>
                                <Binding  
                                    ConverterParameter="500" 
                                    RelativeSource="{RelativeSource FindAncestor,AncestorType={x:Type ListView}}"
                             >
                                    <Binding.Converter>
                                        <Converters:ListViewColumnResizeConverter/>
                                    </Binding.Converter>
                                </Binding>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>