2009-07-22 1 views
0

Я реализую WPF DataGrid (очень новый для WPF). Я следил за учебниками, которые показывали, как связать ComboBoxColumn с использованием staticresources. Однако привязка данных для нескольких столбцов в моем datagrid не будет известна до времени выполнения.WPF Toolkit - Datagrid - ComboboxColumn Binding w/DynamicResource

Из-за этого я не могу связать их с staticresource. Есть ли другой способ привязки данных к ComboBoxColumn s в DataGrid? В ASP.NET я знаю, что у нас был код rowdatabound, где мы могли это сделать и динамически создавать содержимое столбцов. Но, в WPF, похоже, что все делается через ресурсы.

Как вы можете использовать динамические ресурсы в DataGrid?

Спасибо!

ответ

0

Вы можете настроить привязки динамически. Что-то вроде этого (этот код создает столбцы сетки и назначает динамические привязки)

 private void AddColumn(GridView view, Field fld) 
     { 
      GridViewColumn col = new GridViewColumn(); 
      col.Header = fld.Label; 
      Binding bnd = new Binding(); 
      switch (fld.FieldType) 
      { 
       case FieldType.DateTime: 
       bnd.Converter = new DateTimeToDateStringConverter(); 
       break; 
// or some other converters 
      } 
      bnd.Path = new PropertyPath(string.Format("Fields[{0}]", 
    _table._fields.IndexOf(fld))); // the string matches what you would use in XAML 
      col.DisplayMemberBinding = bnd; 
      view.Columns.Add(col); 
     }