2009-03-13 2 views
0

новичок в XAML/WPF и наткнулся на эту странную вопрос:DataBinding в список Посмотреть

У меня есть представление списка, к которому я устанавливаю DataSource. DataSource - это администратор «CatalogPartRows». Я создаю свои столбцы в коде. Затем я устанавливаю свои шаблоны своих ячеек (некоторые из моих столбцов содержат комбинированные поля и флажки). Моя проблема здесь в том, что мне нужно вызвать функцию в классе «CatalogPartRow», которая извлекает строку, которую мне нужно установить в ячейке.

Вот код, который я пытаюсь использовать:

  // THIS DOES NOT WORK 
      // 
      ObjectDataProvider ODP = new ObjectDataProvider(); 
      ODP.MethodName = "PropertyValueAsString"; 
      ODP.MethodParameters.Add(PropertyName); 
      ODP.ObjectType = typeof(CatalogPartRow); 

      Binding DataBindingText = new Binding(); 
      DataBindingText.Source = ODP; 

      // THIS WORKS 
      // 
      //String BindingPathText = /*NOXLATE*/"PropertyValues[" + CPR.IndexOf(PropertyName) + /*NOXLATE*/"]"; 
      //Binding DataBindingText = new Binding(BindingPathText); 

      FrameworkElementFactory TextBlockElement = new FrameworkElementFactory(typeof(TextBlock)); 
      TextBlockElement.SetBinding(TextBlock.TextProperty, DataBindingText); 

      FrameworkElementFactory PropertyColumnElement = new FrameworkElementFactory(typeof(Grid)); 
      PropertyColumnElement.AppendChild(TextBlockElement); 

      DataTemplate DT = new DataTemplate(); 
      DT.VisualTree = PropertyColumnElement; 

      GVC.CellTemplate = DT; 

Является ли мой подход правильный?

CPR = CatalogPartRow

GVC = GridViewColumn

Спасибо, Радж.

ответ

0

Поскольку упаковка метода в свойстве не будет работать (поскольку требуется параметр), лучшим домашним животным является, вероятно, создание конвертера значений. Вы можете использовать PropertyName в качестве привязки для столбца, а затем в своем конвертере вы можете передать это вашему методу и вернуть значение метода.

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