您的位置:首页 > 编程语言 > C#

[WPF]使用C#代码实现DataTemplate

2011-03-24 10:06 666 查看
/article/5542593.html

GridViewColumn column = new GridViewColumn();
GridViewColumnHeader h = new GridViewColumnHeader();
h.Content = "??????";
h.Tag = "*******";
column.Header = h;
DataTemplate dt = new DataTemplate();
FrameworkElementFactory fef = new FrameworkElementFactory(typeof(CheckBox));
Binding binding = new Binding();
binding.Path = new PropertyPath("MarketIndicator");
fef.SetBinding(CheckBox.ContentProperty, binding);
fef.SetValue(CheckBox.ForegroundProperty, Brushes.White);
dt.VisualTree = fef;
column.CellTemplate = dt;
(this.lvExecutionTable.View as GridView).Columns.Add(column);

http://hi.baidu.com/icexile/blog/item/2e75a73d47171108bba167e2.html

//内存中动态生成一个XAML,描述了一个DataTemplate
XNamespace ns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation";
XElement xDataTemplate =
new XElement( ns + "DataTemplate", new XAttribute( "xmlns", "http://schemas.microsoft.com/winfx/2006/xaml/presentation" ),
new XElement( ns + "TextBlock",
new XElement( ns + "TextBlock", new XAttribute( "Width", "100" ), new XAttribute( "Text", "{Binding Path=Name}" ) ),
new XElement( ns + "TextBlock", new XAttribute( "Width", "100" ), new XAttribute( "Text", "{Binding Path=Nick}" ) )
)
);
//将内存中的XAML实例化成为DataTemplate对象,并赋值给
//ListBox的ItemTemplate属性,完成数据绑定
XmlReader xr = xDataTemplate.CreateReader();
DataTemplate dataTemplate = XamlReader.Load( xr ) as DataTemplate;
lstBox_.ItemTemplate = dataTemplate;
//将两个TextBox分别绑定到当前Item的Name和Nick属性上
txtBoxName_.SetBinding( TextBox.TextProperty, "Name" );
txtBoxNick_.SetBinding( TextBox.TextProperty, "Nick" );
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: