我有一个DataGrid控件dgChangesMade,带有ItemsSource = ObservableCollection<CheckinPath>。第一列dgPath是DataGridTemplateColumn,由复选框TextBlock。转换器为后者返回一条相对路径。数据网格行的可见性绑定到IsVisible属性。除了DataGrid控件外,我还有一个CheckBox控件:IsChecked事件绑定到布尔属性IsChecked。设置器设置绑定到DataGrid的项目源的对象的IsVisible属性。因此数据网格行被折叠/当该复选框(未)示出检查。SourceUpdated事件绑定到CheckBox_SourceUpdated就像Scott在另一个线程中指出的那样:DataGrid将增加列的大小以适应数据变长的情况,但是当数据长度减小时,它不会自动减小列的大小所以在CheckBox_SourceUpdated事件中将列宽设置为0强制更新DataGrid的布局将列宽设置为自动不幸的是,这没有帮助。当(取消)选中复选框控件时,列的宽度会在需要时增加(请参见屏幕截图中的2),但不会根据datagrid列中的数据长度自动减小(请参见屏幕截图3中的内容,其中3显示与以下内容相同的内容) 1)。有任何想法吗?截屏XAML<DataGrid Name='dgChangesMade' Width='Auto' ItemsSource="{Binding Path=ChangesMade}"> <DataGrid.Resources> <DataGridTemplateColumn Width='Auto' x:Key='dgPath' Header='Path' IsReadOnly='True' x:Shared='False'> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <StackPanel Orientation='Horizontal' VerticalAlignment='Center'> <CheckBox IsChecked='{Binding IsChecked, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}'> <TextBlock Text='{Binding Converter={StaticResource CheckinPathConverter}, ConverterParameter="Path"}' /> </StackPanel> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <Style x:Key='dgShowHideRow' TargetType='DataGridRow'> <Setter Property='Visibility' Value='{Binding IsVisible, Converter={StaticResource BoolToVisibilityConverter}, ConverterParameter="Collapsed", Mode=TwoWay}' /> </Style> <DataGrid.Columns> <StaticResource ResourceKey='dgPath' /> <StaticResource ResourceKey='dgStatus' /> <StaticResource ResourceKey='dgLock' /> </DataGrid.Columns> <DataGrid.ItemContainerStyle> <StaticResource ResourceKey='dgShowHideRow' /> </DataGrid.ItemContainerStyle></DataGrid>
1 回答
- 1 回答
- 0 关注
- 215 浏览
添加回答
举报
0/150
提交
取消