listview单元格中的TextBox

时间:2013-10-10 19:14:48

标签: wpf datatemplate celltemplate

我有一个listview,我想在每个gridview列单元格中添加一个文本框,这样我就可以在其中键入数据,然后获取该数据。

我正在创建一个datatemplate并将其传递给GridViewColumn的单元格模板,但是当我查看listview时,我无法向该单元格添加任何内容。看起来甚至没有创建文本框。

            GridViewColumn conceptColumn = new GridViewColumn();
            conceptColumn.Header = conceptName;

            conceptColumn.CellTemplate = this.GetDataTemplate();
            this.TestModeler.Columns.Add(conceptColumn);
            conceptColumn.DisplayMemberBinding = new Binding(conceptName);


    private DataTemplate GetDataTemplate()
    {
        DataTemplate dt = new DataTemplate(typeof(TextBox));
        FrameworkElementFactory txtElement = new FrameworkElementFactory(typeof(TextBox));
        dt.VisualTree = txtElement;

        Binding bind = new Binding();
        bind.Path = new PropertyPath("Text");
        bind.Mode = BindingMode.TwoWay;

        txtElement.SetBinding(TextBox.TextProperty, bind);
        txtElement.SetValue(TextBox.TextProperty, "test");

        return dt;
    }

1 个答案:

答案 0 :(得分:0)

请查看MSDN上的ListView Class页面,您可以在其中找到XAML示例以及有关如何使用WPF ListView执行各种操作的大量链接。

特别感兴趣的是,请查看那里的How to: Use Templates to Style a ListView That Uses GridView页面,其中说明了您尝试做的事情(但在XAML中)以及示例。

MSDN应始终成为您首选的地方,因为完整等待阅读的信息。