0
我使用GridView和ListView控件来显示一些目录内容。我使用后面的代码动态加载ListView内容,创建GridViewColumns并将它们绑定到我自定义的catListItem类中的属性。动态绑定GridView CellTemplate内容
var view = new GridView();
var binding = new Binding("Name");
var resElement = _mResourceManager.GetElementByMdlID("vlu_usw_name_of");
view.Columns.Add(new GridViewColumn { Header = resElement.Name, DisplayMemberBinding = binding });
binding = new Binding("Number");
resElement = _mResourceManager.GetElementByMdlID("vlu_usw_arc_logical_nmbr");
view.Columns.Add(new GridViewColumn { Header = resElement.Name, DisplayMemberBinding = binding });
一切都很好,但现在我想用一些图标添加列,使用GridViewColumn的CellTemplate财产。事情是这样的:
var view = new GridView();
var col = new GridViewColumn { Header = "" };
var template = new System.Windows.DataTemplate(typeof(Image));
col.CellTemplate = template;
view.Columns.Add(col);
var binding = new Binding("Name");
var resElement = _mResourceManager.GetElementByMdlID("vlu_usw_name_of");
view.Columns.Add(new GridViewColumn { Header = resElement.Name, DisplayMemberBinding = binding });
binding = new Binding("Number");
resElement = _mResourceManager.GetElementByMdlID("vlu_usw_arc_logical_nmbr");
view.Columns.Add(new GridViewColumn { Header = resElement.Name, DisplayMemberBinding = binding });
我知道有使用DisplayMemberBinding,CellTemplate和CellTemplateSelector时优先。 所以我的问题是: 如何创建(设置,...)CellTemplate的内容,并可能将其绑定到我的自定义类的属性动态?我不知道我错过了什么!我已经搜索过这个问题,但是我发现的一切都是使用DataTemplate的XAML解决方案。 使用代码隐藏它很重要。 在此先感谢!
为什么要使用图片的DataTemplate中,它将返回默认模板图像,必须具有名称自定义的DataTemplate,用它来代替typeof运算(图) –
@ MitanShan谢谢你的回答,但我不确定我是否理解你的观点。是否强制创建自定义DataTemplate?我无法找到一种方法来处理代码。是不是可以将默认的图像模板绑定到我的自定义属性? –
它不会帮助,因为图像模板将需要与图像控制相关的属性,如果需要,您必须在代码中定义DataTemplate。 –