silverlight – 具有CellTemplate和绑定的自定义DataGrid列

我需要使用自定义CellTemplate创建可重用的DataGrid列.除其他外,这个CellTemplate应该包含一个TextBlock控件,我需要将值绑定到DataGrid中显示.到目前为止我看到的所有示例都是在DataGrid的Columns属性中直接指定了CellTemplate,并且还直接指定了绑定到TextBlock,例如:

<data:DataGrid>
    <data:DataGrid.Columns>
        <data:DataGridTemplateColumn Header="Name">
            <data:DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Name}"/>
                </DataTemplate>
            </data:DataGridTemplateColumn.CellTemplate>
        </data:DataGridTemplateColumn>
    </data:DataGrid.Columns>
</data:DataGrid>

我需要将此列封装到一个可重用的控件中,我想为它指定一个Binding,就像普通的DataGridTextColumn一样.换句话说,当使用这个自定义列时,我只想写这样的东西:

<data:DataGrid>
    <data:DataGrid.Columns>
        <controls:CustomColumn Header="Name" Binding="{Binding Name}" />
    </data:DataGrid.Columns>
</data:DataGrid>

问题是我的自定义列继承的DataGridTemplateColumn没有Binding属性.我以为我将能够使用DataGridBoundColumn,但是不可能为它指定CellTemplate.

如何实现理想的行为?谢谢!

解决方法

我认为最简单的方法是创建一个customcontrol,然后像这样使用它:

<DataGridTemplateColumn>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <controls:CustomColumn Header="Name" Binding="{Binding Name}" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

昨天我做了类似的事情,效果很好

相关文章

如何在Silverlight4(XAML)中绑定IsEnabled属性?我试过简单的...
我正在编写我的第一个vb.net应用程序(但我也会在这里标记c#,...
ProcessFile()是在UIThread上运行还是在单独的线程上运行.如...
我从同行那里听说,对sharepoint的了解对职业生涯有益.我们不...
我正在尝试保存一个类我的类对象的集合.我收到一个错误说明:...
我需要根据Silverlight中的某些配置值设置给定控件的Style.我...