【问题标题】:BInding issues with showing Image in xamDataGrid在 xamDataGrid 中显示图像的 BInding 问题
【发布时间】:2013-10-03 07:24:30
【问题描述】:

我想在 XamDataGrid 的一个字段中显示图像。 我拥有的图像的路径是我的Model 中的一个属性。我能够使用普通 WPF DataGrid 显示图像,但遇到了 XamDataGrid 的问题。(参见第 2 点)

  1. 将 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 数据网格。

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

请告诉我。如果我必须在步骤 1 中进行任何更改。

【问题讨论】:

  • 您说一种方法有效,但在您的示例代码中,您有两个不同的 Binding 路径,第一个路径缺少一部分。请尝试使用与 XamDataGrid 中的工作示例相同的 Binding 路径,如果仍然无法正常工作,请返回并完成您的第一个代码示例。
  • @Sheridan 感谢您的编辑帮助。我已经尝试过绑定,我在第 2 部分中使用过。然后尝试通过相对源来实现。实际上第 2 部分(使用简单的 WPF DataGrid)我只是为了实验而尝试的。我必须为 UI 使用 XamDataGrid。

标签: wpf xamdatagrid


【解决方案1】:

xamDataGrid 中每个字段的 DataContext 是 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>

【讨论】:

    猜你喜欢
    • 2011-02-15
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 2014-09-20
    • 2020-09-07
    相关资源
    最近更新 更多