利用DataGrid SelectedItem属性来控制TemplateColumn的外观

时间:2009-12-08 16:17:33

标签: silverlight silverlight-3.0 datagrid templates

为Silverlight DataGrid创建自定义列设计时,有没有办法绑定或使用DataGrid的SelectedItem属性?

我希望显示一个静态元素,但只对所选行显示它。

我所追求的一个简单例子:

<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)。

2 个答案:

答案 0 :(得分:0)

RowDetails是否满足您的需求?

答案 1 :(得分:0)

最终我做了一个解决方法 - 用作ItemSource的类添加了一个Selected属性,该属性自动更新以与列表的更改同步。然后我添加了一个Visiblity属性(我也可以使用转换器)将所选的布尔值转换为可见性值,该值用于控制列表中所选项目的列中控件的可视外观。