问题标签 [gridviewcolumn]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ObservableCollection 没有更新我的 GridViewColumns (MVVM)
嗨,有人可以帮忙吗?我有一个绑定到 ObservableCollection 即 StabCollection 的 ListView。数据显示完美。
我有几个文本框和一个组合框,使用户能够编辑列。当编辑这些文本框时,gridview 中的值会按预期更改,但是我正在尝试实现取消功能以将更改恢复为原始值。手动更改 StabCollection 的 SelectedItem 或更改 StabCollection[SelectedIndex] 不会更新 UI,但集合正在更改。任何帮助将不胜感激。
}
c# - WPF动态改变GridViewColumn CellTemplate c#
我正在尝试了解有关 ListView 的知识,现在我正在解决这个问题:
我在后面的代码中定义了一个列表视图。我想动态更改gridviewcolumn celltemplate。例如通过使用复选框或按钮,或其他。甚至可能吗?
我的 ListView 的定义在这里:
我想通过选中复选框或单击按钮在运行时将 colStack 的 CellTemplate 更改为 templateStack1。
谢谢你的任何想法。
gridview - 响应式 Gridview 列标题
我正在尝试为与我的gridview关联的每一列添加一个标题,这样当页面足够宽以显示多行项目时,列标题应显示在每列的顶部,如果页面缩小,则应将其删除使该列不再适合。
最终结果将如下所示: 2 列带标题
当调整大小时,它会动态更新为: 1 column with 1 header
c# - WPF 如何使用 GridViewColumns(ListView 绑定)添加绑定到数组元素的列
我正在制作一个数据可视化应用程序,我已经用 XAML 编写了 3 个列并成功绑定,但我试图让用户在运行时添加列。
我正在尝试将列标题绑定到 TextBox 中输入的值,该值进入实现 INotifyPropertyChanged 的类,并将单元格的值绑定到 DataContext 中对象列表中存在的列表中的元素。
如果这有什么用,我在 .NET 4.7.2
有问题的班级:
我尝试使用转换器的(不成功的)绑定,但没有被调用
listView.View 的 XAML 代码
这是 DataContext 中使用的类的摘录,以及我想在绑定过程中使用的 List
将行添加到列表视图时出现此错误
任何帮助将不胜感激
编辑:通过将变量更改为属性来修复绑定->
我仍在寻找 Header 绑定虽然
c# - 根据 MVVM 中的集合更改调整列表视图的列大小
这是我第一次在这里发布问题,所以提前道歉,如果我在我的问题中遗漏了什么,或者我没有提供足够的细节。
首先,我发现了这篇文章中描述的一个非常相似的问题,它非常清楚地描述了我想要实现的目标:Autoresize Listview Columns on content update 但是信誉限制不允许我发表评论,因此我正在创建这个问题。
关于我的具体问题:
我是第一次构建一个 WPF 应用程序,并试图围绕 MVVM 模式。在我的视图中,我有一个带有网格视图的 listView。listview 的 ItemSource 绑定到我的 ViewModel 中的 ICollectionView,根据用户选择的植物类别,它的 CollectionViewSource 使用不同的 ObservableCollections 更新。可观察集合根据用户输入的搜索查询从本地数据库中获取数据。
我的问题是,用户第一次输入搜索输入时,列表中会填充结果,并且每个 gridview 列的宽度都会调整以适合每列中最长的字符串。
但是,当用户输入另一个搜索查询并且我更新了 observable 集合时,gridview 列的宽度不会调整以适应新数据,因此宽度将保持第一个搜索查询结果设置的宽度。
我希望能够动态地设置每列的宽度以适应该列中最长的元素,但无法在不破坏 MVVM 模式的情况下正确地做到这一点。
前面提到的帖子中提出的解决方案建议编辑我的 xaml.cs 文件,据我了解,这不应该在 MVVM 中完成,因为视图的代码隐藏文件不应该包含任何逻辑。据我了解,正确的方法是在视图模型上公开属性,然后通过 xaml 在视图中绑定到这些属性。
然后,我天真的方法是在 ViewModel 中公开一个 Width 属性,但是,由于我的视图中有几列,我需要为每个列公开宽度属性,并通过遍历新获取的每个对象来重新计算它们的宽度结果并找到其中最长的字符串,这似乎既乏味又是错误的方法。
所以我的问题基本上是:当 viewmodel 中的 ItemSource 在不让 viewmodel 知道视图的情况下更新时,重新计算视图中 gridviewcolumns 的宽度的最佳方法是什么?
我应该在我的视图模型中公开宽度的属性,还是我可以在视图模型中引发一个事件并在我的视图中订阅它?对此的任何帮助或提示将不胜感激!
这是我的列表视图的 xaml 代码:
和视图模型:
vb.net - 如何动态地将“x:name”属性添加到 GridviewColumn?
我有这些代码:
通过这些代码,我试图制作这些 XAML 的类似代码:
但是这个
VB.Net 不工作。如何动态设置 GridviewColumn 的“x:name”值?我找不到解决方案。
c# - 使用 DataTempülate 创建可编辑的 GridviewColumn
我有一个可观察的集合,通过它的 ItemsSource 属性绑定到我的 ListView。我使用 GridView 来呈现 ListView 中的项目。通过在我的 ViewModel 中将“IsServiceMode”属性设置为“true”(DataContext 到包含 ListView 的 UserControl),我想将 GridViewColumn 更改为使用 TextBox 而不是 Textblock。我正在将 CellTemplates 与 ContentControl 和 DataTemplate 一起使用,如此处所述
但是,尽管编辑器建议“位置”,但文本块和文本框控件中的“绑定位置”似乎不起作用。Position 是绑定 ObservableCollection 中项目的属性,可以通过 DisplayMemberBinding 毫无问题地使用。
我的 GridViewColumn