2009-12-08 48 views
0

爲Silverlight DataGrid創建自定義列設計時,有沒有什麼方法可以綁定或使用DataGrid的SelectedItem屬性?使用DataGrid SelectedItem屬性來控制TemplateColumn的外觀

我希望顯示一個靜態元素,但它只對所選行是可見的。

的我後一個簡單的例子:

<data:DataGrid> 
     <data:DataGrid.Columns> 

      ... 

      <data:DataGridTemplateColumn> 
       <data:DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <TextBlock Text="Selected" Visibility="{IsSelected ? Visible : Collapsed}"> 
        </DataTemplate> 
       </data:DataGridTemplateColumn.CellTemplate> 
      </data:DataGridTemplateColumn> 

      ... 

     </data:DataGrid.Columns> 
</data:DataGrid> 
  • 列不需要包含任何其他元素或綁定。
  • 它不需要特別控制Visibility屬性 - 任何隱藏除選定行之外的所有行上的元素的方法都會執行。

這可以用樣式來完成嗎? (請注意,已經有一種樣式應用於DataGrid)。

回答

0

最終我做了一個解決方法 - 用作ItemSource的類有一個Selected屬性添加,它被自動更新爲與列表的更改同步。然後我添加了Visiblity屬性(我也可以使用轉換器)將選定的布爾值轉換爲可見性值,該值用於控制列表中所選項目列中控件的外觀。