नेट 3.5बाइंड datagrid स्तंभ दृश्यता MVVM
मुझे पता है कि कॉलम DataContext वारिस नहीं है और अन्य पदों मैंने सोचा पढ़कर इस काम करेगा:
Visibility="{Binding RelativeSource={x:Static RelativeSource.Self},
Path=(FrameworkElement.DataContext).IsColumnNameVisible,
Converter={StaticResource boolToVisConverter}}"
हालांकि निश्चित रूप से ऐसा नहीं ' टी .. आउटपुट विंडो शिकायत नहीं करती है, ऐसा लगता है कि मुझे मिला संसाधन, लेकिन व्यूमोडेल संपत्ति को नया कहा जाता है।
इस पूरी डीजी है:
<tk:DataGrid
VirtualizingStackPanel.IsVirtualizing="False"
Grid.Column="0"
AlternationCount="2"
AreRowDetailsFrozen="True"
AutoGenerateColumns="False"
Background="Transparent"
BorderThickness="0"
CanUserAddRows="False"
CanUserReorderColumns="True"
CanUserResizeRows="False"
GridLinesVisibility="None"
ItemsSource="{Binding Employees}"
SelectionMode="Single"
ColumnHeaderStyle="{StaticResource columnHeaderStyle}"
RowHeaderStyle="{StaticResource rowHeaderStyle}"
CellStyle="{StaticResource cellStyle}"
RowStyle="{StaticResource rowStyle}"
ContextMenu="{StaticResource columnHeaderContextMenu}">
<tk:DataGrid.Resources>
<ContextMenu x:Key="columnHeaderContextMenu" ItemsSource="{Binding ColumnHeaderContextMenuItems}" />
<Style TargetType="{x:Type ScrollBar}">
<Setter Property="Background" Value="Transparent"/>
</Style>
<Style TargetType="{x:Type tk:DataGridColumnHeader}">
<Setter Property="Background" Value="Transparent"/>
</Style>
</tk:DataGrid.Resources>
<tk:DataGrid.Triggers>
<EventTrigger RoutedEvent="tk:DataGridRow.MouseDoubleClick">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource showDetailGrid}"/>
</EventTrigger.Actions>
</EventTrigger>
</tk:DataGrid.Triggers>
<tk:DataGrid.Columns>
<tk:DataGridTextColumn IsReadOnly="True" Header="test" Binding="{Binding Name, Mode=OneWay}" Visibility="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(FrameworkElement.DataContext).IsColumnNameVisible, Converter={StaticResource boolToVisConverter}}" />
</tk:DataGrid.Columns>
</tk:DataGrid>
मैं इस समस्या को और कुछ भी नहीं काम करता है के लिए काफी हर एक समाधान पढ़ा है ..
यदि आपका प्रश्न थोड़ा अस्पष्ट लगता है। क्या आप बस एक बाउंड व्यूमोडेल संपत्ति के आधार पर डेटा कॉलम को दृश्यमान या अदृश्य बनाने की कोशिश कर रहे हैं? – ChrisBD
आप अपना कॉन्टेक्स्टमेनू '' में बदलते हैं - इसमें कोई आश्चर्य नहीं कि आपकी विंडो डेटाकॉन्टेक्स्ट पहुंच योग्य नहीं है। –
@ क्रिसबीडी: हाँ यह विचार है। वीएम प्रोप डेटाकॉन्टेक्स्ट के माध्यम से सेट किया गया है। – jrb