WPF DataGrid가 있고 DataGrid에서 ViewModel의 DataGrid Context 외부에있는 속성에 따라 열을 표시하려고합니다.DataGrid에서 DataContext로 WPF 바인딩
"DataContext."가 아닌 일부 레이블에 대해 DataGrid 외부에서 동일한 속성 바인딩을 사용하고 있는데 문제가 없습니다.
<DataGrid ItemsSource="{Binding Items.View}" AutoGenerateColumns="False" x:Name="Overview" >
<DataGridTemplateColumn Header="{lex:Loc Value}" Width="Auto" Visibility="{Binding ElementName=Overview, Path=DataContext.CharacteristicMeasure.Characteristic.CharacteristicType.IsBool,Converter={StaticResource boolToInv}, ConverterParameter=true}" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Value}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding Value}" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
</DataGridTemplateColumn>
어떻게 든 DataGridTemplateColumn의 Visibility 속성에 전혀 영향을 미치지 않습니다. 나는 왜 그리고 어떻게 계속 해야할지 모른다.
UPDATE
내 출력 창에 다음 오류 보여줍니다
System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpression:Path=DataContext.CharacteristicMeasure.Characteristic.CharacteristicType.IsBool; DataItem=null; target element is 'DataGridTemplateColumn' (HashCode=15721293); target property is 'Visibility' (type 'Visibility')
UPDATE 2
내가 DataGrid에
외부의 다른 가시성 속성에 같은 속성 바인더 제본을 가지고 있지만<DockPanel Visibility="{Binding CharacteristicMeasure.Characteristic.CharacteristicType.IsBool,Converter={StaticResource boolToInv}, ConverterParameter=true}" >...
및이 잘 작동합니다.
디버거를 연결하고 변환기의 ConvertTo 메서드에 중단 점을 넣습니다. 그러면 속성이 올바르게 연결되어 있고 변환기에서 Visibility enum으로 변환하고 있는지 확인해야합니다. – Gishu
변환기가 실행되지 않습니다. 다음과 같은 결과가 나타납니다. System.Windows.Data 오류 : 2 : 대상 요소에 대한 FrameworkElement 또는 FrameworkContentElement를 찾을 수 없습니다. BindingExpression : Path = DataContext.CharacteristicMeasure.Characteristic.CharacteristicType.IsBool; DataItem = null; 대상 요소는 'DataGridTemplateColumn'(HashCode = 15721293)입니다. 대상 속성이 '가시성'(유형 '가시성') – JuHwon
Doh! 다시 물린 - DataGridColumn은 시각적 요소가 아닙니다. 가능한 복제 [WPF DataGrid의 Visible 속성 DataGridCOlumn에 바인딩] (http://stackoverflow.com/questions/669060/binding-to-visible-property-datagridcolumn-in-wpf-datagrid) – Gishu