我得到了一個WPF DataGrid,並且在DataGrid中我想要顯示一個依賴於DataGrid上下文(來自ViewModel)的屬性的列。WPF在DataGrid中與DataContext綁定
我有一些標籤(沒有「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的可見性屬性的。我不知道爲什麼以及如何繼續。
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')
更新2
雖然我得到了相同的屬性綁定另一個visibility屬性在DataGrid
之外<DockPanel Visibility="{Binding CharacteristicMeasure.Characteristic.CharacteristicType.IsBool,Converter={StaticResource boolToInv}, ConverterParameter=true}" >...
,這工作正常。
附上您的調試器,並在您的轉換器的ConvertTo方法中放置一個斷點。這應該驗證你的財產連接正確,並且轉換器將它轉換爲可見性枚舉。 – Gishu
轉換器未執行。我得到以下輸出:System.Windows.Data錯誤:2:找不到目標元素的控制FrameworkElement或FrameworkContentElement。 BindingExpression:路徑= DataContext.CharacteristicMeasure.Characteristic.CharacteristicType.IsBool;的DataItem = NULL;目標元素是'DataGridTemplateColumn'(HashCode = 15721293);目標屬性是'可見性'(類型'可見性') – JuHwon
Doh!再次被咬住--DataGridColumn不是一個可視元素。可能的重複[綁定到WPF DataGrid中的可見屬性DataGridColumn](http://stackoverflow.com/questions/669060/binding-to-visible-property-datagridcolumn-in-wpf-datagrid) – Gishu