Bind DataGridTextColumn Visibility Property w WPF
Mam datagrid, któregoItemsSource
wiąże się zCollectionViewSource
.
W każdej kolumnie określamPath
właściwość powiązania, aby uzyskać określone informacje do wyświetlenia.
Chciałbym przełączać niektóre kolumny z polem wyboru, jeśli użytkownik chce uzyskać więcej informacji. Aby to zrobić, muszę powiązać właściwość widoczności z wartością pola wyboru (z konwerterem), ale jestem pewien, że kontekst danych kolumny zakłóca wiązanie.
<DataGrid ItemsSource="{Binding Source={StaticResource cvs}}" ....>
<DataGrid.Columns>
<DataGridTextColumn Header="First Name" Binding="{Binding Path=FirstName}"
Visibility="{Binding IsChecked,
ElementName=IncludeFullHist,
Converter={StaticResource boolItemsConverter}}"/>
</DataGrid.Columns>
</DataGrid>
Potrzebuję także pola wyboru w moim modelu widoku, więc mam jegoIsChecked
właściwość związana z właściwością w moim ViewModel
<CheckBox x:Name="IncludeFullHist" IsChecked="{Binding Path=ManagerFullHist }" />
W przypadku innych elementów na mojej stronie udało mi się połączyć powiązania widoczności z jedną z dwóch następujących metod, ale żadna z nich nie działa, gdy skopiuję je do datagrid:
<TextBlock DockPanel.Dock="Left" Text=" Visible 2 "
Visibility="{Binding Path=DataContext.ManagerFullHist,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type UserControl}},
Converter={StaticResource boolItemsConverter}}"/>
<TextBlock DockPanel.Dock="Left" Text=" Visible 3 "
Visibility="{Binding Path=ManagerFullHist,
Source={StaticResource mainWinResource},
Converter={StaticResource boolItemsConverter}}"/>
Wszelkie sugestie dotyczące sposobów, które mogę rozwiązać w datagrid?
Daj mi znać, jeśli pominęłem jakikolwiek kod, który może być potencjalnie pomocny.