有啊,无论我点击“City Temperature & Sales Re”、“National Custom Region Information”,还是“Local Custom Region Information” 。temp.Header都是等于"Local Custom Region Information"。
(selItem.Parent as TreeViewItem).Items.GetItemAt(2)它的意思难道不是获取父节点的第三个子项吗?
我知道重写是个较好的办法,但很多时候不是我的裤子太长了,而是我的腿太短了。所以我还是希望你给个,能获取SelectItem它的上下Item的代码,如A,B,C,当点击B(TreeViewItem)时,可以获取到A或者C的值。因为你给的(selItem.Parent as TreeViewItem).Items.GetItemAt(2)只能获取到父节点的第三个子项,加上TreeViewItem的数量是不定,麻烦了,大哥。
我知道重写是个较好的办法,但很多时候不是我的裤子太长了,而是我的腿太短了。所以我还是希望你给个,能获取SelectItem它的上下Item的代码,如A,B,C,当点击B(TreeViewItem)时,可以获取到A或者C的值。因为你给的(selItem.Parent as TreeViewItem).Items.GetItemAt(2)只能获取到父节点的第三个子项,加上TreeViewItem的数量是不定,麻烦了,大哥。 你绑定到TreeView的数据源是什么类型的??Datatable? 还是ObservableCollection集合??
DataTable。 把你的DataTable 换成ObservableCollection或者List集合 DataTable dt = new DataTable(); DataColumn dc = new DataColumn() { ColumnName = "Name", }; dt.Columns.Add(dc); for (int i = 0; i < 5; i++) { DataRow dr = dt.NewRow(); dr[0] = "节点" + i; dt.Rows.Add(dr); }
foreach (DataRow row in dt.Rows) { List.Add(new EntityTreeModel() { Name = row[0].ToString() }); }
{
if (e.OriginalSource == null)
{
return;
}
TreeViewItem selItem = (tvList.SelectedItem as TreeViewItem);
if (selItem == null) return;
if ((selItem.Parent as TreeViewItem) == null) return; TreeViewItem temp = (selItem.Parent as TreeViewItem).Items.GetItemAt(2) as TreeViewItem;
if (temp == null)
return;
string header = temp.Header.ToString();
}
你有认真 看代码吗??
我就是要选中一个TreeviewItem,点击一个按钮,然后刷新,对应的TreeviewItem调整了位置。
如果只是调整位置 那么我可以给个demo你。我刚写了个qq多少
如果只是调整位置 那么我可以给个demo你。我刚写了个qq多少[email protected]
如果只是调整位置 那么我可以给个demo你。我刚写了个qq多少[email protected]
已发送 请查收。。只是一个排序。。
什么意思啊??骂人?是不是我理解错了 给的demo不符合
难道我给你的不可以实现添加修改删除吗??你里面代码你看数据绑定就知道了啊。我就是这样实现删除一个节点 数据库也删除 树节点也删除的啊
你把你数据库里的那个 排序 字段当成索引绑定到TreeViewItem上不行吗??再根据它进行删除
难道我给你的不可以实现添加修改删除吗??你里面代码你看数据绑定就知道了啊。我就是这样实现删除一个节点 数据库也删除 树节点也删除的啊
重写 也是种比较好的方法。
你绑定到TreeView的数据源是什么类型的??Datatable? 还是ObservableCollection集合??
把你的DataTable 换成ObservableCollection或者List集合 DataTable dt = new DataTable();
DataColumn dc = new DataColumn()
{
ColumnName = "Name",
};
dt.Columns.Add(dc);
for (int i = 0; i < 5; i++)
{
DataRow dr = dt.NewRow();
dr[0] = "节点" + i;
dt.Rows.Add(dr);
}
foreach (DataRow row in dt.Rows)
{
List.Add(new EntityTreeModel() { Name = row[0].ToString() });
}
this.tvListDataTable.ItemsSource = List;private void tvListDataTable_Selected(object sender, RoutedEventArgs e)
{
EntityTreeModel model = tvListDataTable.SelectedItem as EntityTreeModel;
int currentIndex = list.IndexOf(model); // 当前节点Index
TreeViewItem selectedItem = (e.OriginalSource as TreeViewItem);
var item = this.List[currentIndex - 1];
}前台修改TreeView模板 <HierarchicalDataTemplate x:Key="DataTemplateTable" ItemsSource="{Binding EntityTreeModel}">
<TextBlock Text="{Binding Name}"></TextBlock>
</HierarchicalDataTemplate>
<!--绑定DataTable-->
<TreeView Name="tvListDataTable" Width="200" Margin="10,0,0,0" Height="200" ItemTemplate="{DynamicResource DataTemplateTable}" HorizontalAlignment="Left" TreeViewItem.Selected="tvListDataTable_Selected">
</TreeView>