我需要根据datagrid中的参数和值隐藏datagrid中的行.我想做这样的事情
foreach (System.Data.DaTarowView dr in myDataGrid.ItemsSource) { //Logic to determine if Row should be hidden if (hideRow == "Yes") { //Hide row code } }
我只是无法想象如何实际隐藏行.请注意,我不想删除datagrid或项目源的行.
解决方法
如果hideRow不是表的一个字段(即DataGridRow中的一列):
<DataGrid.RowStyle> <Style targettype="{x:Type DataGridRow}"> <Style.Triggers> <DataTrigger Binding="{Binding AnyProp,Converter={StaticResource hiddenConverter}}" Value="True"> <Setter Property="Visibility" Value="Collapsed"/> </DataTrigger> </Style.Triggers> </Style> </DataGrid.RowStyle>
并用您的逻辑实现转换器.绑定变量的类型,上面的AnyProp将在下面是你的属性类型. AnyProp可以是行中的任何列.
[ValueConversion(typeof(yourPropType),typeof(bool))] public class hiddenConverter: IValueConverter { public object Convert(object value,Type targettype,object parameter,CultureInfo culture) { if (hideRow == "Yes") { return true; } else { return false; } } }
“值”将是AnyProp,它可以用于确定是否显示行的逻辑,或者该决定可以完全基于其他内容,例如示例中的“hideRow”.
原文地址:https://www.jb51.cc/csharp/94067.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。