DataGridTemplateColumn.CellTemplate如何有条件地添加图像并隐藏相同列单元格中的复选框

时间:2014-09-28 13:31:41

标签: wpf xaml silverlight

                      <c1:DataGridTemplateColumn.CellTemplate>                          
                          <DataTemplate>
                                <CheckBox x:Name="chkBxIsChecked" IsChecked="{Binding IsChecked, Mode=TwoWay}" HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="{Binding IsVisible, Mode=TwoWay}" >
                                <Image Name="ErrorImage" Visibility ="{Binding IsImgVisible, Mode=TwoWay}" Source= "../../../Resources/Images/Fail.png" Height="16" Width="16" Margin="5,0,0,0"></Image>  
                                    <i:Interaction.Triggers>
                                        <i:EventTrigger EventName="Checked">
                                            <t:MapEventToCommand Command="{Binding Source={StaticResource TestVM},Path=IsCkCommand}" CommandParameter="checked" />
                                        </i:EventTrigger>

                                        <i:EventTrigger EventName="Unchecked">
                                            <t:MapEventToCommand Command="{Binding Source={StaticResource TestVM},Path=IsCkCommand}" CommandParameter="unchecked" />
                                        </i:EventTrigger>
                                    </i:Interaction.Triggers>
                                </CheckBox>                                    
                            </DataTemplate>                                                                                            
                        </c1:DataGridTemplateColumn.CellTemplate>                          
                    </c1:DataGridTemplateColumn>  

enter image description here
   我想在列中隐藏一个复选框,并根据db中的数据显示图像。    我正在尝试上面的方法,但是当我为了复选框进行visibility.collapse时无法显示图像。 我能从代码隐藏中做到这一点吗? ,请建议我。 在附着图像中测试一条记录,我希望显示图像而不是checkbo,因为它显示为空,因为我将可见性折叠在行上。

提前致谢。

Here is the output i am getting from above code , i am expecting row 3 checkbox column should be displayed an image

1 个答案:

答案 0 :(得分:1)

您已添加Image作为CheckBox的子级。因此,使父(CheckBox)折叠最终会使子(图像)崩溃。 将checkBox和Image设为父容器的兄弟姐妹。

替换

<CheckBox>
   <Image/>
</CheckBox>

<Grid>
  <CheckBox/>
  <Image/>
<Grid>

假设可见性绑定工作正常。