2013-10-03 7 views
0

Я хочу показать изображение в одном поле XamDataGrid. Путь изображения у меня есть свойство в моем Model. Я был в состоянии показать изображение с помощью нормального WPF DataGrid, но сталкиваются с проблемами с XamDataGrid (см. В пункте 2)Проблемы с отображением изображения в xamDataGrid

  1. Binding ItemImage собственности на XamDataGrid поле.

    <igDP:Field.Settings> 
         <igDP:FieldSettings AllowEdit="False"> 
          <igDP:FieldSettings.CellValuePresenterStyle> 
            <Style TargetType="{x:Type igDP:CellValuePresenter}" > 
             <Setter Property="Template"> 
             <Setter.Value> 
               <ControlTemplate TargetType="{x:Type igDP:CellValuePresenter}"> 
                <Grid> 
                <Image 
                 Source="{Binding RelativeSource={RelativeSource AncestorType=      {x:Type igDP:XamDataGrid}}, Path=ItemImage, Converter={StaticResource ImageConverter}}"/> 
                </Grid> 
               </ControlTemplate> 
             </Setter.Value> 
             </Setter> 
           </Style> 
         </igDP:FieldSettings.CellValuePresenterStyle> 
        </igDP:FieldSettings> 
        </igDP:Field.Settings> 
    

    `

  2. Работа с нормальной WPF Data Grid.

    <DataGridTemplateColumn> 
        <DataGridTemplateColumn.CellTemplate> 
          <DataTemplate> 
           <Image Source="{Binding ItemImage, Converter={StaticResource ImageConverter}}" /> 
          </DataTemplate> 
        </DataGridTemplateColumn.CellTemplate> 
    </DataGridTemplateColumn> 
    

пожалуйста, дайте мне знать. если я должен сделать какие-либо изменения в шаге 1.

+0

Вы говорите, что один из методов работал, но в вашем примере кода у вас есть два разных пути «Связывание», а первый отсутствует. Попробуйте использовать тот же путь «Binding» из рабочего примера в вашем «XamDataGrid» и вернитесь и выполните свой первый пример кода, если это все еще не работает. – Sheridan

+0

@Sheridan Спасибо за помощь в редактировании. Я уже пробовал с привязкой, которую я использовал в Части 2. И затем попытался сделать это через Relative source. Фактически Part2 (используя простой WPF DataGrid), я пробовал только эксперимент. Мне нужно использовать XamDataGrid для пользовательского интерфейса. – kamlendra

ответ

1

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

<igDP:Field.Settings> 
    <igDP:FieldSettings AllowEdit="False"> 
     <igDP:FieldSettings.CellValuePresenterStyle> 
       <Style TargetType="{x:Type igDP:CellValuePresenter}" > 
        <Setter Property="Template"> 
        <Setter.Value> 
          <ControlTemplate TargetType="{x:Type igDP:CellValuePresenter}"> 
           <Grid> 
           <Image 
            Source="{Binding DataItem.ItemImage, Converter={StaticResource ImageConverter}}"/> 
           </Grid> 
          </ControlTemplate> 
        </Setter.Value> 
        </Setter> 
      </Style> 
    </igDP:FieldSettings.CellValuePresenterStyle> 
</igDP:FieldSettings> 

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