为GridViewColumn设置自动调整大小

时间:2016-08-17 13:05:59

标签: c# wpf

我正在使用C#WPF开发一个应用程序。

我正在使用ListView多个GridViewColumn。 ListView绑定一个包含图片的自定义类(名为Shot,在名为Shots的列表中)。当列为空(Shot的字段对所有镜头为空)时,它不会显示。如果添加了包含,则列可见并通过绑定IsVisible自动调整大小。

我的镜头列表是ObservableCollection<Shot>

刷新大小的代码是(在MainWindows.xaml.cs上):

private void Context_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    String property = e.PropertyName;
    if (property == "Shots")
    {
        // shotsGridView is the GridView element
        foreach (GridViewColumn c in shotsGridView.Columns)
        {
            try
            {
                this.Dispatcher.Invoke(new Action(() =>
                {
                    if (GridViewColumnVisibilityManager.GetIsVisible(c))
                        c.SetValue(GridViewColumn.WidthProperty, double.NaN);
                    else
                        c.SetValue(GridViewColumn.WidthProperty, 0);
                }));
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }
    }
}

正确调用刷新,只有非空列可见。问题是调整大小是使用标题大小完成的,内容未完整显示。参见专栏名称&amp;以下示例中的状态。

Example of display

0 个答案:

没有答案