2012-09-17 104 views
0

我想弄清楚如何將DataGrid模板列的可行性綁定到datagrid的datacontext的可觀察集合。注:我是一個初學者,但這個東西,所以你可能必須解釋,你會像一個10歲的老...將模板列的可見性綁定到基礎數據

我知道這是涉及到這個stackoverflow,但我仍然似乎無法得到它去。

我在轉換器中的斷點,但是當數據添加到觀察集合它從來沒有被擊中......

我希望這是有道理的...... 非常感謝

    <DataGrid AutoGenerateColumns="False" AlternatingRowBackground="LightBlue" ItemsSource="{Binding historyColl}" Margin="0,75,6,26" Name="historyDataGrid" FontSize="12" HorizontalAlignment="Right" Width="381"> 
        <DataGrid.Columns> 
         <DataGridTemplateColumn Header="Date (dd-mm)" Width="80*"> 
          <DataGridTemplateColumn.CellTemplate> 
           <DataTemplate> 
            <TextBlock Text="{Binding Date}" Background="{Binding Converter={StaticResource TradedBackground}}"/> 
           </DataTemplate> 
          </DataGridTemplateColumn.CellTemplate> 
         </DataGridTemplateColumn> 

         <DataGridTemplateColumn Header="Test" Width="50" Visibility="{Binding RelativeSource={x:Static RelativeSource.Self}, 
           Path=FrameworkElement.DataContext, Converter={StaticResource booleanToVisiblityConverter}}"> 
          <DataGridTemplateColumn.CellTemplate> 
           <DataTemplate> 
            <TextBlock Text="{Binding Test}"/> 
           </DataTemplate> 
          </DataGridTemplateColumn.CellTemplate> 
         </DataGridTemplateColumn> 

        </DataGrid.Columns> 
       </DataGrid> 
+1

難道你沒有忘記在資源中定義你的'booleanToVisiblityConverter'嗎?此外,我會用適當的'PathToVisibilityFlagInDataContext'來使用'Visibility =「{Binding PathToVisibilityFlagInDataContext,Converter = {StaticResource booleanToVisiblityConverter}}」'。 (你似乎也忘記了這個。) – Vlad

+0

我確實定義了轉換器,但是在窗口資源中做了它,儘管...我在哪裏把它放在C#端呢?PathToVisibilityFlagInDataContext – keynesiancross

+0

我基本上希望轉換器可以允許我訪問ObservableCollection的第一行,然後從那裏我可以設置可見性.. – keynesiancross

回答

0

我會參加下面的討論,但我沒有足夠的觀點來這樣做。 我很確定Path=FrameworkElement.DataContext是問題所在。轉換器需要一個布爾值,但是會獲得一個DataContext。

我期望在DataContext本身內可以使用轉換器綁定可見性的類型爲bool的屬性。

在窗口資源中定義轉換器就好了。

相關問題