C#WPF ListView设置UniformGrid列

时间:2016-12-12 10:50:09

标签: c# wpf listview

我想将ListView中的列数更改为屏幕指标,我使用以下代码进行此操作。

    private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
    {
        this.SizeChanged += OnWindowSizeChanged;
    }


    protected void OnWindowSizeChanged(object sender, SizeChangedEventArgs e)
    {
        double newWindowHeight = e.NewSize.Height;
        double newWindowWidth = e.NewSize.Width;
        double prevWindowHeight = e.PreviousSize.Height;
        double prevWindowWidth = e.PreviousSize.Width;

        LabelXY.Content = newWindowHeight.ToString() + newWindowWidth.ToString();
    }

用xaml设置列;

    <UniformGrid Columns="5"/>

enter image description here

一切都很好,有5列。

enter image description here

但如果窗口宽度小于1200像素,我想要4列。

我首先想到它是绑定的,就像这样我失败了。

     <UniformGrid Columns="{Binding Path=ColumnNum}"/>

因此,如果它没有绑定,可以用C#以编程方式更改列数?感谢...

1 个答案:

答案 0 :(得分:0)

尝试放

<ListView.ItemsPanel>
    <ItemsPanelTemplate>
        <WrapPanel Orientation="Horizontal"/>
    </ItemsPanelTemplate>
</ListView.ItemsPanel>

并在Listview ScrollViewer.HorizontalScrollBarVisibility="Disabled"

<ListView  ItemsSource="{Binding Customers}"  ScrollViewer.HorizontalScrollBarVisibility="Disabled">