我正在使用带有 ListView 控件的 GridView 来显示一些目录内容。我正在使用后面的代码动态加载 ListView 内容,创建 GridViewColumns 并将它们绑定到我的自定义 catListItem 类中的属性。
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 解决方案。用后面的代码来做这件事很重要。提前致谢!