2013-01-10 70 views
1

我得到了一個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}" >... 

,這工作正常。

+0

附上您的調試器,並在您的轉換器的ConvertTo方法中放置一個斷點。這應該驗證你的財產連接正確,並且轉換器將它轉換爲可見性枚舉。 – Gishu

+0

轉換器未執行。我得到以下輸出:System.Windows.Data錯誤:2:找不到目標元素的控制FrameworkElement或FrameworkContentElement。 BindingExpression:路徑= DataContext.CharacteristicMeasure.Characteristic.CharacteristicType.IsBool;的DataItem = NULL;目標元素是'DataGridTemplateColumn'(HashCode = 15721293);目標屬性是'可見性'(類型'可見性') – JuHwon

+0

Doh!再次被咬住--DataGridColumn不是一個可視元素。可能的重複[綁定到WPF DataGrid中的可見屬性DataGridColumn](http://stackoverflow.com/questions/669060/binding-to-visible-property-datagridcolumn-in-wpf-datagrid) – Gishu

回答

1

奇怪,因爲它的聲音,在DataGridColumn類直接從DependencyObject繼承,所以你不能用它的特性(它沒有SetBinding法)綁定。

找不到原因。

+0

謝謝。現在我明白了這個問題,並且已經解決了它。 我確實將該屬性綁定到TextBox,並顯示帶有此轉換器的反轉版本的另一個TextBox。謝謝 – JuHwon