动态绑定GridView CellTemplate内容

时间:2015-06-03 12:26:07

标签: c# wpf gridview dynamic celltemplate

我使用带有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解决方案。 使用代码来完成它非常重要。 提前谢谢!

1 个答案:

答案 0 :(得分:0)

实际上我找到了解决方案 HERE

我不得不使用FrameworkElementFactory。这是我要找的代码:

CameraUpdate center=CameraUpdateFactory.newLatLng(new LatLng(latitude, longitude));

CameraUpdate zoom=CameraUpdateFactory.zoomTo(15);

googleMap.moveCamera(center);
googleMap.animateCamera(zoom);