2012-05-07 49 views
1

我有一个绑定的自我跟踪实体在DataGrid是否可以根据某些条件隐藏行?

用户可以“删除”的记录,一个ObservableCollection然而项目不着手从数据库中删除一个DataGrid。

如何显示未标记为已删除的行?

我正在使用MVVM模式。

+1

是的,有。你有什么尝试? –

回答

1

也许这是一个多一点的信息,然后你在后面,但我遇到了完全相同的情况,并选择显示灰色的行,或者当他们的状态被切换到删除时被“重做”。你触发属性和因为我使用的是Xceed DataGrid和你使用内置的Datagrid,但它会是基本相同的款式目标类型可能会有点不同:https://stackoverflow.com/a/10431650/529618

<Style TargetType="{x:Type xcdg:DataRow}" > 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding Path=ObjectState}" 
        Value="{x:Static Member=objectmodel:EnumObjectState.Deleted}" > 
      <!-- You can do anything in this trigger such as hide, collapse, or disable the row. I chose to apply a custom effect. --> 
      <Setter Property="Background" Value="#FFEED5D2"/> 
      <Setter Property="ToolTip" Value="This entry will be permanently deleted the next time you save."/> 
      <Setter Property="Effect"> 
       <Setter.Value> 
        <ui:ColourAdjustEffect Saturation="0" Gamma="0.6" BrightnessAdjustment="-0.2" RedAdjustment="0.04" /> 
       </Setter.Value> 
      </Setter> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 

为了什么它看起来像,下方的合成图像中检查出的最后3张图片:

enter image description here

2

只需添加一个DataGrid.RowStyle,您可以使用DataTriggers设置VisibilityCollapsed或改变Backgroundcode example)。

+0

wouldnt它使滚动的数据网格看起来复杂的模板更慢?如果中间行隐藏,则加上交替行样式会拧紧行的备用后备色。 –

+0

@AngelWPF:我不知道,这是可能的,虽然折叠控件优化。没有提到交替着色,所以我没有必要考虑它。 –

相关问题