- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
所以我有一些数据想存储在 TreeView 中,我让它与 2 个分支一起工作,但我一直在获取更多数据。我认为字典最适合这个,因为当我添加“健全性检查”时,将 ID 存储在 key 中最容易
我希望如何呈现我的数据:
--Internet Checks
----- 'Date, message, status'
--------- 'Details'
--Server Checks
----- 'Date, message, status'
--------- 'Details'
--Sanity Checks
----- 'Date, message, status'
--------- 'Details'
--------- 'Error1'
--------- 'Error2'
--------- 'Error3'
--------- 'etc'
--etc
这是现在的样子
--Internet Checks
----- 'Date, message, status'
--Server Checks
----- 'Date, message, status'
--Sanity Checks
----- 'Date, message, status'
--etc
现在我的 xaml 是这样的:
<TreeView Name="treeView1" ItemsSource="{Binding Items}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Value.SubItems}">
<TextBlock Text="{Binding Value.Text}" />
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Value.Text}"/>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
这是我的 MenuItem 类:
public class MenuItem
{
public MenuItem()
{
this.SubItems = new Dictionary<int, MenuItem>();
}
public Dictionary<int, MenuItem> SubItems { get; set; }
public string Text { get; set; }
}
这是我目前填写字典的方式:
public Dictionary<int, MenuItem> Fill(string name, Dictionary<int, MenuItem> root, List<HealthCheckHourModel> list)
{
root.Add(nextNum, new MenuItem { Text = name + " Checks"});
foreach (HealthCheckHourModel hchm in list)
{
if (hchm.Message.Contains(name))
{
root[nextNum].SubItems.Add(hchm.ID, new MenuItem { Text = hchm.StartTime + " " + hchm.Message });
root[nextNum].SubItems[hchm.ID].SubItems.Add(-111, new MenuItem { Text = hchm.Details });
}
}
nextNum--;
return root;
}
最佳答案
有两种可能:
删除 HierarchicalDataTemplate 的 ItemTemplate。
<TreeView Name="treeView1" ItemsSource="{Binding Items}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Value.SubItems}">
<TextBlock Text="{Binding Value.Text}" />
<!--<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Value.Text}"/>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>-->
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
将 ItemTemplate 保留为 HierarchicalDataTemplate,但将 DataTemplate 替换为 HierarchicalDataTemplate
<TreeView Name="treeView1" ItemsSource="{Binding Items}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Value.SubItems}">
<TextBlock Text="{Binding Value.Text}" />
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Value.SubItems}">
<TextBlock Text="{Binding Value.Text}" />
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
关于c# - 将 Dictionary<string,List<Class>> 绑定(bind)到多个 TreeViewItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45820806/
C#: TreeViewItem treeItem = null; treeItem = new TreeViewItem(); treeItem.Header = "
我有 webservice asmx,还有类: Country public string Name {get;set;} public string Code {get;set;} public L
我有一个Silverlight树 View ,该树 View 动态填充有treeviewitems(代表 View )。我的工作正常,但是当我单击Treeviewitem时说“ View 2.01”时
我使用最新版本的 mvvm light 工具包,但是我不清楚如何将 EventToCommand 用于事件 TreeViewItem.Expanded。 这很有效......我做错了什么?
当 TreeView(或应用程序)失去焦点时,如何更改所选 TreeViewItem 的背景。在这种情况下,默认情况下选定的项目具有浅灰色背景。 编辑:第一个答案后的尝试:但是找不到带有 Target
我希望能够通过右键单击在我的程序中选择一个 TreeViewItem。以前,(在 this question 中)我试图通过从任何我想允许选择 TreeViewItem 的地方调用 SetSelect
我是 WPF 表单的新手,在尝试在 TreeViewItem 中设置背景时遇到了一个问题。
我被要求更新 WPF 应用程序中的 TreeVeiw,该应用程序是从类对象动态构建的。正如您将看到的,treeveiw 不受任何约束。以下不是我的代码!! private void Buil
目前这是我的控件: 它应该在 ListBox 中,但问题是我需要能够仅选择父项或子项。 这是一个简单的概念,但我已经尝试了很多(包装在 ListBoxItem 中。使用扩展器并手动更改可
我希望能够从 TreeViewItem 中删除子节点通过按键盘上的删除按钮。我正在使用 SelectedItem尝试这样做。 目前我正在使用 KeyDown我的代码隐藏中的事件: private vo
private void SetCurrentItemInEditMode(bool EditMode) { if (product_tree.SelectedItem is Tre
你好,我正在使用一个 WPF 应用程序,我希望在展开 TreeView 上的项目之前触发事件。我知道目前还没有为此举办的事件,但我不确定如何以我这样做的方式添加一个事件,因此我们将不胜感激。 这是 x
我有一个 TreeView,我从一个集合中填充了一个 TreeViewItem 列表(使用绑定(bind)),我链接到一个 TreeView 事件“展开”以展开它并显示他们的 child ,我现在的目
您好问题是我有多个 TreeView 控件,每个 TreeView 都有自己的 TreeViewItem 样式,设置它 TreeView ItemContainerStyle="{StaticReso
我正在尝试创建一个向右水平扩展的 TreeView ,以便它像这样扩展: Parent1 -> Child1 Child2 Child3
为了在 TreeViewItem 中存储一个对象(比如一个类的实例),我目前将该对象存储在 TreeViewItem 中。的 Header然后覆盖 ToString该类的方法,以便它显示正确的字符串标
在我的 MVVM 应用程序中,我有一个树 View ,应该在选择时将树 View 项带入 View 。树 View 表示数据库中的记录。每个树 View 项通过在选择时展开项来按需加载其子项。 树 V
我有一个典型的 TreeView 和一个 View 模型。 View 模型有一个可观察的其他 View 模型集合,用作树的数据源。 public class TreeViewVM { publ
我有一个 TreeView我正在尝试实现一种样式,允许我使用 HierarchicalDataTemplate 在特定节点的所有子节点周围放置边框.我想要的一个例子如下所示: 以下代码是我到目前为止所
我在 TreeView 中有一个 TreeView 项目,它将绑定(bind)一个列表:
我是一名优秀的程序员,十分优秀!