2013-10-10 2 views
0

У меня есть listview, что я хотел бы добавить текстовое поле внутри каждой ячейки столбца gridview, чтобы я мог вводить в него данные, а затем извлекать эти данные.TextBox внутри ячейки listview

Я создаю datatemplate и передаю его шаблону ячейки для GridViewColumn, но когда я смотрю на список, я не могу ничего добавить в ячейку. Это не похоже на то, что текстовое поле было даже создано.

  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

Не создавать и не манипулировать элементами пользовательского интерфейса в процедурном коде в WPF. Для этого и предназначен XAML. –

ответ

0

Пожалуйста, обратите внимание на ListView Class странице в MSDN, где можно найти пример XAML и множество ссылки о том, как делать различные вещи с WPF ListView.

Особый интерес для вас, пожалуйста, посмотрите на страницу How to: Use Templates to Style a ListView That Uses GridView, в которой объясняется, что вы пытаетесь сделать (но в XAML) с примерами.

MSDN должен всегда быть вашим первым местом, чтобы посмотреть как это полный информации только и ждут, чтобы быть прочитан.

Смежные вопросы