Привязка к DataRowView с помощью DataTrigger внутри DataGrid - PullRequest
0 голосов
/ 09 мая 2011

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

Вот как выглядит сетка данных без стиля:

равнина данных

Довольно просто, но когда я пытаюсь оформить его, используя шаблон ячейки с триггерами, это то, что я получаю (каждая ячейка с DAL.Task должна содержать оранжевый кружок):

стиль данных

вот xaml, который я использую для стилизации сетки:

<DataTemplate x:Key="MiddleDataGridCellTemplate">
 <Grid>
  <Image Name="CenterImage"
   HorizontalAlignment="Center"
   VerticalAlignment="Center"/>     
 </Grid>
 <DataTemplate.Triggers>
  <DataTrigger Binding="{Binding Row.ItemArray/TaskStatusName}"
   Value="In Progress">
   <Setter TargetName="CenterImage"
    Property="Source"
    Value="/besoControlLibrary;component/Resources/Spreadsheet_CheckedOut.png" />
  </DataTrigger>
 </DataTemplate.Triggers>
</DataTemplate>

Я предполагаю, что "{Binding Row.ItemArray / TaskStatusName}" вызывает проблему. Как правильно извлечь свойство TaskStatusName объекта DAL.Task в рамках представления данных?

Я обнаружил, что значения пустых ячеек - DBNull, если это вообще помогает.

Кроме того, эти значения поступают из DataTable, который является контекстом DataGrid.



Ответы [ 2 ]

1 голос
/ 09 мая 2011

DataContext уже должен быть вашим объектом, который вы показываете, так что вы должны иметь возможность привязки к любому желаемому свойству:

{Binding TaskStatusName}

Вы можете получить больше информации, посмотрев в окно вывода при запуске приложения. Также вот пример DataGridTemplateColumn, который, вероятно, вы хотите имитировать:

http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridtemplatecolumn%28v=vs.95%29.aspx

0 голосов
/ 24 мая 2011
...