我有
<ListView Grid.Column="1" ItemsSource="{Binding DataItems}" SelectionMode="Multiple" Grid.RowSpan="2" Name="listView"/>
是否可以更改ScrollViewer.VerticalScrollBarVisibility
带
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<ei:ChangePropertyAction PropertyName="ScrollViewer.VerticalScrollBarVisibility" TargetName="listView" Value="Hidden" />
</i:EventTrigger>
</i:Interaction.Triggers>
如何以正确的方式做到这一点?
答案 0 :(得分:0)
&#34;正确的方式&#34;这样做当然取决于您的要求。但您可以参考以下使用ToggleButton显示和隐藏ListView滚动条的示例标记:
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication2"
mc:Ignorable="d"
Title="MainWindow" Height="300" Width="300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ListView Grid.Column="1" ItemsSource="{Binding DataItems}" SelectionMode="Multiple" Grid.RowSpan="2" Name="listView">
<ListView.Style>
<Style TargetType="ListView">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=btn}" Value="True">
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.Style>
</ListView>
<ToggleButton x:Name="btn" Content="Enabled/Disable" Grid.Row="1" />
</Grid>
</Window>
只要ToggleButton和ListView在同一个名称范围内,这就可以了。 Othwerwise你最好处理Button的Click事件并以编程方式设置ListView的ScrollViewer.VerticalScrollBarVisibility
附加属性:
private void btn_Click(object sender, RoutedEventArgs e)
{
ScrollViewer.SetVerticalScrollBarVisibility(listView, ScrollBarVisibility.Hidden);
}
毕竟,XAML是一种标记语言。它不能用作实现相当高级逻辑的编程语言。使用C#等编程语言来执行此操作:)