我正在使用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;以下示例中的状态。