WPF,请问如何让表里的Header绑定变量? wpfc#listviewdatagrid绑定 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用DataGrid,修改列的HeaderTemplate模板,模板中使用textblock或者lable,使用binding机制。如果你不知道HeaderTemplate怎么用,先去MSDN上自己搜索。 先感谢回答。请教一下,C#这边用什么样的结构比较好。因为Header和Cell的ItemSource是一样的。我也不知道C#这边该用什么结构,怎么绑定好。还是说需要在C#这边动态创建绑定? 先感谢回答。请教一下,C#这边用什么样的结构比较好。因为Header和Cell的ItemSource是一样的。我也不知道C#这边该用什么结构,怎么绑定好。还是说需要在C#这边动态创建绑定?header 的话 你单独 绑定一个类的属性就ok了 补充一下就是Cell这边直接Binding属性名,就可以直接从List里面把相应的属性值显示出来。但是Header这边的绑定就很头疼了。从DataGrid继承来的ItemSource不知道怎么绑定才好。到现在我还没有成功地让Header显示出除了手动输入的和变量名以外的值。求绑定变量的例子。 为什么老纠结"绑定"做个循环,Header.Text替换成你要显示的文字,不就得了你要显示的文字,放哪,还不随便放数组也行,定义个类来存也行,总之能取出来不就得了 补充一下就是Cell这边直接Binding属性名,就可以直接从List里面把相应的属性值显示出来。但是Header这边的绑定就很头疼了。从DataGrid继承来的ItemSource不知道怎么绑定才好。到现在我还没有成功地让Header显示出除了手动输入的和变量名以外的值。求绑定变量的例子。嗯,你新建一个类,用于绑定header值。把window的DataContext设置成这个类。然后把属性绑定到对应的header就ok了。 我就是不知道用什么语法能得到 Header.Text。请您再指点一下,给个例程吧。比如我是:C#部分:namespace WpfApplication3 { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); List<Pvalue> listforvalue = new List<Pvalue>(); listforvalue.Add(new Pvalue { value1 = "小张", value2 = "20" }); listforvalue.Add(new Pvalue { value1 = "小王", value2 = "30" }); this.DataGridTest.ItemsSource = listforvalue; } public class Pvalue { public string value1 {get; set; } public string value2 { get;set; } } public class Pname { public string name1 { get { return "姓名"; } set { } } public string name2 { get { return "年龄"; } set { }} } }}XML部分: <DataGrid x:Name="DataGridTest" ></DataGrid> 结果出来这个:我就是想让value1和value2变成”姓名"和"年龄",但是不想用xmal里面header=""手敲进去也不想用中文变量名。 补充一下就是Cell这边直接Binding属性名,就可以直接从List里面把相应的属性值显示出来。但是Header这边的绑定就很头疼了。从DataGrid继承来的ItemSource不知道怎么绑定才好。到现在我还没有成功地让Header显示出除了手动输入的和变量名以外的值。求绑定变量的例子。嗯,你新建一个类,用于绑定header值。把window的DataContext设置成这个类。然后把属性绑定到对应的header就ok了。我试了这个:<DataGrid x:Name="DataGridTest" ColumnHeaderStyle="{DynamicResource sty_CHS}"> </DataGrid> <Border.Resources> <Style x:Key="sty_CHS" TargetType="DataGridColumnHeader"> <Setter Property="Template" Value="{DynamicResource tp_CHS}"></Setter> </Style> <ControlTemplate x:Key="tp_CHS" TargetType="DataGridColumnHeader"> <StackPanel DataContext="pnametest"> <Label Content="{Binding name1}"></Label> </StackPanel> </ControlTemplate> </Border.Resources>C#部分是:namespace WpfApplication3 { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); Pname pnametest = new Pname(); List<Pvalue> listforvalue = new List<Pvalue>(); listforvalue.Add(new Pvalue { value1 = "小张", value2 = "20" }); listforvalue.Add(new Pvalue { value1 = "小王", value2 = "30" }); this.DataGridTest.ItemsSource = listforvalue; } public class Pvalue { public string value1 { get; set; } public string value2 { get; set; } } public class Pname { public string name1 { get { return "姓名"; } set { } } public string name2 { get { return "年龄"; } set { } } } }}然后什么都没显示。我现在一头雾水,还恳请您给个例程。 构造函数里:DataGridTest.Columns[0].Header = Pname.name1; DataGridTest.Columns[1].Header = Pname.name2;静态类:public static class Pname { public static string name1 = "姓名"; public static string name2 = "年龄"; }这样最简单了。 我觉得您这个方法应该是对的..但是我遇到一个问题,就是执行DataGridTest.Columns[0].Header = Pname.name1;的时候会抛出异常。无论是在指定ItemSource之前还是之后,都会抛出异常。如果设断点,就会发现DataGridTest.Columns.Count是0。但是确实显示中这个DataGrid里面是有内容的。 datagridview获得焦点的滚动条问题 datagridview如何快速刷新列 webBrowser问题 .NET关于月份统计的问题 求《c#程序开发范例宝典》光盘源代码 求水晶报表下将数字转换成金额大写的公式,UP有分 DataGrid控件:如何改变列标题名称 跪求C#高手问题,如何分析整个网页的html文件,然后把整个文件保存到本地,尤其是图片也要保存. 从数据库取出一个记录,分别在WORD文档的固定位置打印,求解 如何把table里的内容写入数据库又读出来 求教如何将一个网址关联到listitem呢 C#串口通信接受
如果你不知道HeaderTemplate怎么用,先去MSDN上自己搜索。
先感谢回答。
请教一下,C#这边用什么样的结构比较好。因为Header和Cell的ItemSource是一样的。
我也不知道C#这边该用什么结构,怎么绑定好。
还是说需要在C#这边动态创建绑定?
先感谢回答。
请教一下,C#这边用什么样的结构比较好。因为Header和Cell的ItemSource是一样的。
我也不知道C#这边该用什么结构,怎么绑定好。
还是说需要在C#这边动态创建绑定?
header 的话 你单独 绑定一个类的属性就ok了
补充一下就是
Cell这边直接Binding属性名,就可以直接从List里面把相应的属性值显示出来。
但是Header这边的绑定就很头疼了。从DataGrid继承来的ItemSource不知道怎么绑定才好。
到现在我还没有成功地让Header显示出除了手动输入的和变量名以外的值。
求绑定变量的例子。
做个循环,Header.Text替换成你要显示的文字,不就得了
你要显示的文字,放哪,还不随便
放数组也行,定义个类来存也行,总之能取出来不就得了
补充一下就是
Cell这边直接Binding属性名,就可以直接从List里面把相应的属性值显示出来。
但是Header这边的绑定就很头疼了。从DataGrid继承来的ItemSource不知道怎么绑定才好。
到现在我还没有成功地让Header显示出除了手动输入的和变量名以外的值。
求绑定变量的例子。
嗯,你新建一个类,用于绑定header值。把window的DataContext设置成这个类。然后把属性绑定到对应的header就ok了。
我就是不知道用什么语法能得到 Header.Text。
请您再指点一下,给个例程吧。比如我是:
C#部分:namespace WpfApplication3 {
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
List<Pvalue> listforvalue = new List<Pvalue>();
listforvalue.Add(new Pvalue {
value1 = "小张",
value2 = "20" });
listforvalue.Add(new Pvalue {
value1 = "小王",
value2 = "30" });
this.DataGridTest.ItemsSource = listforvalue; } public class Pvalue {
public string value1 {get; set; }
public string value2 { get;set; } } public class Pname {
public string name1 { get { return "姓名"; }
set { } }
public string name2 { get { return "年龄"; }
set { }} } }}
XML部分:
<DataGrid x:Name="DataGridTest" >
</DataGrid>
结果出来这个:我就是想让value1和value2变成”姓名"和"年龄",
但是不想用xmal里面header=""手敲进去
也不想用中文变量名。
补充一下就是
Cell这边直接Binding属性名,就可以直接从List里面把相应的属性值显示出来。
但是Header这边的绑定就很头疼了。从DataGrid继承来的ItemSource不知道怎么绑定才好。
到现在我还没有成功地让Header显示出除了手动输入的和变量名以外的值。
求绑定变量的例子。
嗯,你新建一个类,用于绑定header值。把window的DataContext设置成这个类。然后把属性绑定到对应的header就ok了。我试了这个:
<DataGrid x:Name="DataGridTest" ColumnHeaderStyle="{DynamicResource sty_CHS}">
</DataGrid>
<Border.Resources>
<Style x:Key="sty_CHS" TargetType="DataGridColumnHeader">
<Setter Property="Template" Value="{DynamicResource tp_CHS}"></Setter>
</Style>
<ControlTemplate x:Key="tp_CHS" TargetType="DataGridColumnHeader">
<StackPanel DataContext="pnametest">
<Label Content="{Binding name1}"></Label>
</StackPanel>
</ControlTemplate>
</Border.Resources>C#部分是:
namespace WpfApplication3 {
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent(); Pname pnametest = new Pname();
List<Pvalue> listforvalue = new List<Pvalue>();
listforvalue.Add(new Pvalue {
value1 = "小张",
value2 = "20"
});
listforvalue.Add(new Pvalue {
value1 = "小王",
value2 = "30"
});
this.DataGridTest.ItemsSource = listforvalue;
} public class Pvalue {
public string value1 {
get;
set;
}
public string value2 {
get;
set;
}
} public class Pname {
public string name1 {
get {
return "姓名";
}
set {
}
}
public string name2 {
get {
return "年龄";
}
set {
}
}
}
}
}然后什么都没显示。
我现在一头雾水,还恳请您给个例程。
DataGridTest.Columns[1].Header = Pname.name2;静态类:public static class Pname
{
public static string name1 = "姓名";
public static string name2 = "年龄";
}这样最简单了。
但是我遇到一个问题,
就是执行DataGridTest.Columns[0].Header = Pname.name1;的时候会抛出异常。无论是在指定ItemSource之前还是之后,都会抛出异常。
如果设断点,就会发现
DataGridTest.Columns.Count是0。
但是确实显示中这个DataGrid里面是有内容的。