0
模板的rowHeader和的columnHeader如何创建一个模板的rowHeader,的columnHeader,和细胞的网格?在DataGrid中在Silverlight
视图模型可以对的rowHeader项目显示,为的columnHeader项目显示对象的列表对象的列表。基本上把它想象成矩阵显示。
可能是一个控件模板需要编写,但运行的想法。关于此功能的文档并不多。
任何想法?
模板的rowHeader和的columnHeader如何创建一个模板的rowHeader,的columnHeader,和细胞的网格?在DataGrid中在Silverlight
视图模型可以对的rowHeader项目显示,为的columnHeader项目显示对象的列表对象的列表。基本上把它想象成矩阵显示。
可能是一个控件模板需要编写,但运行的想法。关于此功能的文档并不多。
任何想法?
您可以为DataGridColumnHeader或DataGridRowHeader创建样式,并将ContentTemplate设置为允许绑定Header属性的DataTemplate。为此,您需要一个启用绑定的IValueConverter。
标头是在Controls.Primitives命名空间:
xmlns:dp="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"
风格:
<Style TargetType="dp:DataGridColumnHeader" >
<Setter Property="ContentTemplate" >
<Setter.Value>
<DataTemplate>
<ContentPresenter Content="{Binding Converter={StaticResource vcBC}}" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
转换器:
public class BindingConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value.GetType().Name == "Binding")
{
ContentControl cc = new ContentControl();
cc.SetBinding(ContentControl.ContentProperty, value as Binding);
return cc;
}
else return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return null;
}
}
转换器实例:
<yourassembly:BindingConverter x:Key="vcBC"/>
感谢您的回应,部分帮助,但围绕这个问题仍然存在很多问题。仍在寻找... – Vin
好的,那么请问你剩下的问题:-) –