我有一個DataGrid控件dgChangesMade,帶有ItemsSource = ObservableCollection<CheckinPath>。第一列dgPath是DataGridTemplateColumn,由復選框TextBlock。轉換器為后者返回一條相對路徑。數(shù)據(jù)網格行的可見性綁定到IsVisible屬性。除了DataGrid控件外,我還有一個CheckBox控件:IsChecked事件綁定到布爾屬性IsChecked。設置器設置綁定到DataGrid的項目源的對象的IsVisible屬性。因此數(shù)據(jù)網格行被折疊/當該復選框(未)示出檢查。SourceUpdated事件綁定到CheckBox_SourceUpdated就像Scott在另一個線程中指出的那樣:DataGrid將增加列的大小以適應數(shù)據(jù)變長的情況,但是當數(shù)據(jù)長度減小時,它不會自動減小列的大小所以在CheckBox_SourceUpdated事件中將列寬設置為0強制更新DataGrid的布局將列寬設置為自動不幸的是,這沒有幫助。當(取消)選中復選框控件時,列的寬度會在需要時增加(請參見屏幕截圖中的2),但不會根據(jù)datagrid列中的數(shù)據(jù)長度自動減?。ㄕ垍⒁娖聊唤貓D3中的內容,其中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 回答
- 0 關注
- 234 瀏覽
添加回答
舉報
0/150
提交
取消