TreeView 数据绑定及选中命令处理
昨天接近下班,一个群里面的网友,问treeView绑定后 选中命令怎么来处理,怎么没有效果,而且用MVVM的方式来写;快下班了本来想远程帮他看下,结果就说写个Demo给他看;再加上选中传参;
下面分享下代码:
<TreeView Height="264" x:Name="tvProperties" Width="220" ItemsSource="{Binding MyProperty}"><!--数据源-->
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedItemChanged">
<i:InvokeCommandAction Command="{Binding DataContext.SelectComamnd,
RelativeSource={RelativeSource AncestorType=Window, AncestorLevel=1, Mode=FindAncestor}}" CommandParameter="{Binding SelectedItem, ElementName=tvProperties}"/><!--选中传值-->
</i:EventTrigger>
</i:Interaction.Triggers>
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded}"></Setter>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Children}"><!--节点-->
<StackPanel Orientation="Horizontal">
<Image VerticalAlignment="Center" Source="{Binding Icon}" Width="16" Height="16" Margin="0,0,2,2"></Image><!--绑定值-->
<TextBlock VerticalAlignment="Center" Name="nodeName" Text="{Binding Name}"></TextBlock>
<Image VerticalAlignment="Center" Source="{Binding EditIcon}" Margin="2,0,0,0"></Image>
<StackPanel.ToolTip>
<TextBlock VerticalAlignment="Center" Text="{Binding Name}" TextWrapping="Wrap" MaxWidth="200" ></TextBlock>
</StackPanel.ToolTip>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
这个绑定完了 咱们来看看数据:
private List<PropertyNodeItem> myVar;
/// <summary>
/// 绑定值
/// </summary>
public List<PropertyNodeItem> MyProperty
{
get { return myVar ?? (myVar = new List<PropertyNodeItem>()); }
set
{
myVar = value;
this.OnPropertyChanged("MyProperty");
}
}
/// <summary>
/// 产生数据
/// </summary>
public MainViewModels()
{
for (int i = ; i < ; i++)
{
PropertyNodeItem aa = new PropertyNodeItem()
{
Name="测试"+i,
Children = new List<PropertyNodeItem>() { new PropertyNodeItem(){Name="测试1"+i+i} }
};
MyProperty.Add(aa);
}
}
ViewModel Code
接着命令代码:
private RelayCommand _selectCommand;
/// <summary>
/// 事件命令
/// </summary>
public RelayCommand SelectComamnd
{
get { return _selectCommand ?? (_selectCommand = new RelayCommand(OnSelectComamnd)); }
set { _selectCommand = value; }
}
/// <summary>
/// 选中事件执行函数
/// </summary>
/// <param name="paramter">参数</param>
private void OnSelectComamnd(object paramter)
{ }
ViewModel Code
完毕~~~
TreeView 数据绑定及选中命令处理的更多相关文章
- JavaScript- 获得TreeView CheckBox里选中项的值
获得TreeView CheckBox里选中项的值,对JSDOM控制还不是很熟,感觉不太容易.试了很多次终于成功了. 代码如下 <body> <form id="form1 ...
- C# 关于变量使用范围容易犯错的问题(TreeView数据绑定为例)
asp.net做一个treeview数据绑定 绑定子节点时查询出来的数据正确,但在进行数据绑定时一直索引溢出 然后调试 ... 调试 ... 再调试... 依然很崩溃 想到了是变量定义后面共用后的问 ...
- winform treeView 数据绑定
转载:http://www.jetwu.cn/archives/737 winform treeView 数据绑定 private void Form1_Load(object sender, Eve ...
- wpf treeview 数据绑定 递归绑定节点
1.先上效果 将所有节点加入ComboBox数据源,在ComboBox中选择时下方Treeview显示该节点下的子节点. 1.xaml文件,将以下代码加入界面合适位置 <StackPanel&g ...
- kendo treeview checkbox初始化选中问题,没解决,暂时记录下
想做带有checkbox的tree,由于项目一直用kendo ui for mvc,感觉 牛逼的kendo肯定有tree.结果碰到了选中的问题. 无法根据后台传来的IsChecked字段来设置 tr ...
- TreeView如何实现选中的节点上移或下移 [问题点数:20分,结帖人nww2002]
在TreeView中,如何实现选中一节点,右键点击上移或下移 TTreeNode.MoveTo() 一.获得Tree上的结点var NowNode : TTreeNode;begin NowNode ...
- winform中treeview中节点选中的技巧
我想实现譬如选择某子节点的时候,父节点会自动选中,如果选择父节点,子节点会全部选中,如果子节点全部不选,父节点也要不选. 贴代码 private void tvwMenu_AfterCheck(obj ...
- WPF MVVM TreeView 实现 右键选中 右键菜单
1.非MVVM模式:下载源代码WpfApplication1.zip <TreeView Height="200" PreviewMouseRightButtonDown=& ...
- WPF TreeView 后台C#选中指定的Item, 需要遍历
private TreeViewItem FindTreeViewItem(ItemsControl container, object item) { ...
随机推荐
- UVA 572 Oil Deposits油田(DFS求连通块)
UVA 572 DFS(floodfill) 用DFS求连通块 Time Limit:1000MS Memory Limit:65536KB 64bit IO Format: ...
- ORACLE数据库操作基本语句
1.登陆SPL*PLUS [username/password] [@server] as [sysdba|sysoper] eg. system/password or connect sys/pa ...
- TCP状态转换图
注意: connect函数导致当前套接字从CLOSE状态(该套接字自从由socket函数创建以来一直所处的状态)转移到SYN_SENT状态 若成功则再转移到ESTABLISHED状态, 若connec ...
- mac 下 配置 阿帕奇
1.从 tomcat 官网(http://tomcat.apache.org/download-90.cgi)下载 完整的 tomcat包. 2.将红框中的包下载完,然后解压到任意一个目录,将其命名为 ...
- 完整的struts.xml文件骨架
完整的struts.xml文件骨架可以直接拿来用,修改一下就可以啦. <?xml version="1.0" encoding="UTF-8"?> ...
- Java文件末尾追加字符串
Java进行文件输出时,有时候想直接向已有文件末尾追加字符,而不是从头开始写,可以采用以下三种方式实现: package test; import java.io.File; import java. ...
- poj Fishnet
http://poj.org/problem?id=1408 #include<cstdio> #include<cstring> #include<cmath> ...
- 改进了UI的界面
小峤提醒我,千万要记住, 调用JS之前,一定要先加载哟~~~ <!--[if lt IE 9]> <script src="/static/js/jquery1.11.1. ...
- MVC与三层架构的区别
我们平时总是将三层架构与MVC混为一谈,殊不知它俩并不是一个概念.下面我来为大家揭晓我所知道的一些真相. 首先,它俩根本不是一个概念. 三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目. ...
- 一张图看懂片式多层陶瓷电容器(MLCC)