wpf datagrid自动展开第一组

2024-01-31

我有一个数据网格,其中 itemsource 绑定到具有一组的 ListCollectionView 。 当我填充集合时,我希望第一组自动被视为已展开,如何在 wpf 中对其进行编码(代码隐藏或 mvvm)?

<DataGrid 
     ItemsSource="{Binding ResultColl}" 
     SelectedItem="{Binding Path=SelectedResultItem, Mode=TwoWay}"
     SelectionMode="Single" IsReadOnly="True" >
    <DataGrid.GroupStyle>
        <GroupStyle>
            <GroupStyle.ContainerStyle>
                <Style TargetType="{x:Type GroupItem}">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type GroupItem}">
                                <Expander>
                                    <Expander.Header>
                                        <StackPanel>
                                                <TextBox Text="{Binding Items[0].ID}" />
                                        </StackPanel>
                                    </Expander.Header>
                                    <ItemsPresenter />
                                </Expander>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </GroupStyle.ContainerStyle>
        </GroupStyle>
    </DataGrid.GroupStyle>

    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding Path=ID}"/>
        <DataGridTextColumn Binding="{Binding Path=Typ}"/>
        <DataGridTextColumn Binding="{Binding Path=Info}"/>
        <DataGridTextColumn Binding="{Binding Path=orderDate, StringFormat={}{0:dd-MM-yyyy}}"/>
    </DataGrid.Columns>
</DataGrid>

在 mvvm 控制器中:

ListCollectionView tmp = new ListCollectionView(myList);
tmp.GroupDescriptions.Add(new PropertyGroupDescription("ID"));
ResultColl = tmp;
...
ListCollectionView _resultColl;
public ListCollectionView ResultColl
{
    get { return _resultColl; }
    set { _resultColl = value;

        RaisePropertyChanged("ResultColl");
        if (value != null && _resultColl.Count > 0)
            SelectedResultItem = _resultColl.GetItemAt(0) as ItemResult;
    }
}

执行代码时,数据网格被填充,第一个项目被选择,但组被折叠。


将 IsExpanded 属性添加到您的类中,并将绑定添加到 Expander:

<Expander IsExpanded="{Binding Items[0].IsExpanded}">

将第一个的 IsExpanded 设置为 true

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wpf datagrid自动展开第一组 的相关文章

  • WPF XAML 定义的 MenuItem 重用开始工作,然后消失

    以下简单代码尝试在两个单独的菜单上重用 Window Resources 中定义的 MenuItem
  • 如何在 WPF 中设置窗口边框和标题栏的样式? [复制]

    这个问题在这里已经有答案了 我们正在开发一个 WPF 应用程序 它使用 Telerik 的控件套件 一切正常且看起来很好 不幸的是 我们最近需要替换所有对话框的基类 将 RadWindow 更改为标准 WPF 窗口 原因与本讨论无关 通过这
  • 将固定文档/XPS 打印为 PDF,而不显示文件保存对话框

    我有一个FixedDocument我允许用户在 WPF GUI 中预览 然后打印到纸张上 而不显示任何 Windows 打印对话框 如下所示 private void Print PrintQueueCollection printQueu
  • WPF DataGrid 排序后滚动到顶部

    我有一个使用数据网格的 Net 4 0 WPF 应用程序 目前 按列排序后 网格的滚动位置保持在排序前的位置 对于此应用程序 我需要在任何排序后滚动到网格顶部 我尝试过像这样处理排序事件 Private Sub myDataGrid Sor
  • MVVM 创建 ViewModel

    有人可以向我解释一下如何为 MVVM 模式创建 ViewModel 我试图理解这里的教程 http msdn microsoft com en us magazine dd419663 aspx http msdn microsoft co
  • 过滤项目来源

    通过此代码 我设置了数据网格的 ItemsSource 不过 我有更多的 wpf 控件来过滤数据网格 例如从时间范围过滤数据网格 我可以为此编写一个新查询 但这似乎没有必要 因为数据已经可用 我只需要过滤它 最好的方法是什么 我能得到的任何
  • WPF 3D - 在复杂几何体上映射渐变画笔

    我想问是否有人知道如何在 WPF 3D 中的复杂对象上映射渐变画笔 结果应该类似于 matlab 中的 3D 图像 例如 3D 函数 假设您有一些想要可视化的 3 维数据 并且想要通过颜色区分某些级别的值 给定一个 GradientBrus
  • 带有移动向前/向后按钮的自定义列表框

    我有一个带有左 右重复按钮的自定义列表框 可以使用内容模板滚动其内容 如下所示
  • 如何在 WPF 中设置覆盖全局样式的特定控制元素设置?

    我通过应用程序范围的资源字典为应用程序中的按钮定义了全局样式 样式如下所示 来自另一个 SO 示例
  • C# - WPF - 组合框 - 将鼠标悬停在聚焦的组合框上时防止滚动(使用附加属性)

    背景 我需要防止ComboBox从将鼠标悬停在其上 聚焦时 时滚动和使用鼠标滚轮滚动 在这种情况下 我无法使用隐藏代码 因此我使用附加属性 我刚问这个问题 https stackoverflow com questions 76101509
  • WPF:鼠标按下时不会触发鼠标离开事件

    我遇到鼠标进入 离开事件的问题 当按下鼠标按钮并按住光标在控件内 然后光标以足够快的速度移出控件时 此事件不会触发 你能告诉我为什么会这样吗 有什么方法可以正确获取这些事件吗 请检查示例项目以查看其实际效果 https www dropbo
  • 什么是WPF浏览器应用程序类型项目?

    什么时候应该使用 WPF 浏览器应用程序 该项目类型有什么用处 开发人员什么时候应该使用这个 WPF 浏览器应用程序是在浏览器中作为 XBAP Xaml 浏览器应用程序 运行的应用程序 您可以找到有关 XBAP 的用途和原因的更多信息her
  • 将 Combobox 控件绑定到 DataGrid 中的单独源

    我尝试在 DataGrid 中使用 ComboBox 这将允许用户选择来自不同表的值 我使用 ViewModel 类作为 DataContext 其中包含一个用于终端的 ObservableCollection 和另一个用于 Termina
  • 密码盒和 MVVM

    我们有以下场景 MVVM 用户界面 用户可以在其中输入密码 实际上是一个PasswordBox 应该做一些工作的服务器 服务器连接到一些需要身份验证的数据库 我已经读过这个关于MVVM中PasswordBox的问题 https stacko
  • ListView.GridViewColumn 对齐中的控制

    我有以下 WPF ListView
  • 如何识别单击的按钮属于哪个列表框项?

    在 WPF 编程中 我在编写按钮单击事件处理程序时遇到问题 因为该按钮位于列表框项目 数据模板的一部分 内 当单击该按钮时 我无法判断它属于哪个项目 有什么解决办法吗 求救 您似乎已将列表框绑定到集合 并且您的按钮是数据模板或项目模板的一部
  • Web浏览器控件:如何捕获文档事件?

    我正在使用 WPF 的 WebBrowser 控件加载一个简单的网页 在这个页面上我有一个锚点或一个按钮 我想在我的应用程序后面的代码中 即在 C 中 捕获该按钮的单击事件 WebBrowser 控件是否有办法捕获加载页面元素上的单击事件
  • WPF 自定义控件 - ItemsControl 模板未应用

    我正在构建一个派生自 TabControl 的自定义 WPF 控件 在 ControlTemplate 中 我使用 ItemsControl 来显示从模板绑定的列表 FileMenuItem 类型的可观察集合 在程序执行期间 我在输出窗口中
  • 用于添加新实体的 MVVM WPF ViewModel

    我对 WPF 中的 MVVM 的概念是 我们为应用程序中的每个模型都有一个 ViewModel 这意味着如果我们有 Customer 类 实体 那么我们将有 CustomerViewModel CustomerViewModel 将具有代表
  • 属性和依赖属性有什么区别

    依赖属性的创建方式与属性相同 依赖属性是否仅在创建自定义控件时使用 依赖属性和标准属性有很大不同 依赖属性提供的关键功能是支持binding and 动画片 如果您想使用Binding或模板绑定该属性需要是依赖属性 当对属性进行动画处理时

随机推荐

  • 如何禁用非员工用户的可浏览 API (is_staff=False)?

    就我而言 我使用 Django REST Framework DRF 作为内部 api 它不适合普通用户使用 因此我想为普通用户禁用它 an admin is staff True should be able to access it a
  • ALM 12:通过 REST 进行身份验证返回 400 错误请求

    我遵循这里的指导 http alm help saas hp com en 12 50 api refs REST TECH PREVIEW Content General Session Management html http alm
  • 如何知道以下代码将创建多少个对象?

    当涉及到字符串时 我对对象的情况感到有点困惑 所以想知道使用以下代码将创建多少个对象 以及有关字符串池和堆的字符串对象创建的一些解释 public static void main String args String str1 Strin
  • D3D11坐标系

    我的一些旧代码最终出现了一堆令人讨厌的黑客行为 以使事情 正确 工作 在移动物体和相机方面 例如必须采用 std sin yaw 而不是 std sin yaw 在实现在线其他地方找到的方程时 通常会让一切变得混乱 在许多情况下都达到了追踪
  • iOS 9 UITableView 分隔符插入(显着左边距)

    我的分隔符有问题UITableViewCells in UITableView on iOS 9 他们有很大的左边距 我已经有用于删除间距的代码iOS 8但它不适用于iOS 9 看起来他们还添加了其他东西 我想它可能与布局边距指南 http
  • 找不到表“cdc.lsn_time_mapping”

    我正在开发一个调用此函数 sys fn cdc map time to lsn 的遗留系统 并且出现以下错误 Invalid object name cdc lsn time mapping 我在对象资源管理器中找不到此表 这个功能有替代品
  • 在句子边界分割文本文件

    我必须处理一个文本文件 一本电子书 我想对其进行处理 以便每行有一个句子 换行符分隔的文件 是吗 我如何使用 UNIX 实用程序 sed 来完成此任务 它是否有一个 句子边界 的符号 就像 单词边界 的符号一样 我认为 GNU 版本有这个
  • 让C代码自动绘制图表

    我编写了一个程序 它将数据列表写入 dat 文件 然后使用 gnuplot 单独绘制它 有没有办法让我的代码自动绘制它 我的输出的形式如下 x coord analytic approximation x coord analytic ap
  • Android - 将 TXT 文件作为电子邮件附件发送失败(“无法发送附件”)

    我试图让我的 Android 应用程序发送一封带有附件的电子邮件 并且我从 txt 文件开始 因为这些很简单 到目前为止 我有这个 发生在片段内 Send the email Intent mailIntent new Intent Int
  • strcmp() 的分段错误

    if strcmp argv 2 NULL 0 我传递了 3 个命令行参数 但我也想通过上述语句仅使用 2 个命令行参数来运行它 但正在显示分段错误错误 我也尝试过 if argc lt 3 但它也不起作用 同样的分段错误 为什么分段错误
  • 如何在命令之后 console.log 消息的第二部分

    我正在创建一个名为 note 的命令 它将向控制台发送一条注释供我查看 我似乎无法弄清楚如何在命令之后分割第二部分 然后将其记录到控制台 谢谢 这很简单 let msg message content split slice 1 join
  • 如何禁用Java安全管理器?

    有没有办法完全禁用Java安全管理器 我正在尝试db4o的源代码 它使用反射来持久化对象 并且安全管理器似乎不允许反射读取和写入私有或受保护的字段 My code public static void main String args th
  • 单击 jstree 时更改图标

    我有使用 jstree 插件的代码 gems tree on changed jstree function event data console log folder clicked 它可以工作 但现在我想将文件夹的图标更改为关闭以打开
  • Web Essentials 的 RTLCSS 工具不起作用

    我正在将 Web Essentials 扩展与 Visual Studio 2013 一起使用 我想使用 Web EssentialsCSS RTL tool 但是当我在 CSS 文件上运行该工具时 什么也没有发生 Web Essentia
  • ModelState 错误:值“null”对于可为空的字段无效

    ModelState 会抛出错误 因为可空字段为空 我有一个模型 public class PersonModel public int ID get set Required StringLength 256 public string
  • 将测试用例连同参数和附件从 TFS 迁移到 VSTS

    我们计划将测试用例 构建定义和代码从 TFS 迁移到 VSTS 但似乎我们无法将 MTM 中存在的测试用例中的参数和附件移动到 VSTS 我们有办法完成这件事吗 很难将带有参数和附件的测试用例从 TFS 单独迁移到 VSTS 看批量迁移工作
  • 从 compojure 提供 index.html 文件

    我是 clojure 和 compojure 的新手 并尝试使用 compojure 和 Ring 来创建一个基本的 Web 应用程序 这是我的 handler clj ns gitrepos handler require compoju
  • HttpClient:无法访问响应标头

    在一个项目中 我们同时使用 Http 和 HttpClient 来获取标头参数 Http 返回标头参数 但 HttpClient 不返回 constructor private http Http private httpClient Ht
  • 适用于 IE6.0 的 HTML5

    您知道有什么方法可以将此 HTML 代码优化为 IE6 或 7 或 8 而不添加anyHTML 元素 或者 IE 正在跳过所有 HTML5 元素 如果我只想使用 CSS 格式化元素 我不想使用其他功能 document createElem
  • wpf datagrid自动展开第一组

    我有一个数据网格 其中 itemsource 绑定到具有一组的 ListCollectionView 当我填充集合时 我希望第一组自动被视为已展开 如何在 wpf 中对其进行编码 代码隐藏或 mvvm