我被这个SB的WPF treeview 节点重命名,折腾了7个小时,大神们来救救我,指个招, 问题简单,附有代码.

Ptrtoptr 2014-06-24 11:02:46
我用TreeView 绑定了 ObservableCollection集合做数据源.
//按说ObservableCollection集合, 数据更新,界面也应该同步,
但是界面没有变化. 代码如下:


<TreeView x:Name="tv" SelectedItemChanged="SelectedItemChanged">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Items}">
<TextBlock Text="{Binding Path=Name}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
<TreeView.ContextMenu>
<ContextMenu >
<MenuItem Header="重命名" Name="rename" Click="rename_Click"></MenuItem>
</ContextMenu>
</TreeView.ContextMenu>
</TreeView>
/////
public partial class Abb : Window {
public Abb() {
InitializeComponent();
Item item = new Item() { Name = "parent" , Items= new ObservableCollection<Item>()};
item.Items.Add(new Item(){Name="child1"});
item.Items.Add(new Item(){Name="child2"});
ObservableCollection<Item> list = new ObservableCollection<Item>();
list.Add(item);
tv.ItemsSource = list;
}
private void rename_Click(object sender, RoutedEventArgs e) {
Item item = tv.SelectedItem as Item;
item.Name = "new Name";
//按说是ObservableCollection集合, 这里的数据更新,界面也应该同步,但是界面没有变化
//请问怎么处理能让界面同步更新,
//我试过tv.items.Refresh() ,它可以让界面同步,不过它会把整个树都折叠起来,并且没有了SelectedItem.
//请问还有什么办法能让界面同更新
}
public class Item {
public string Name { get; set; }
public ObservableCollection<Item> Items { get; set; }
}
}
...全文
169 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
最好自己写一个 数据管理类,用来管理你的Item类数据,所有的操作都放到这个类里。 在你的 Abb 后代,直接绑定它的 DataContext为你的数据管理类,如: this.DataContext = dataManage; 然后再xaml上直接使用bind 来绑定你的数据集合。注意,你的 ObservableCollection集合也要 FirePropertyChangedEvent一下。
gomoku 2014-06-25
  • 打赏
  • 举报
回复
要实现INotifyPropertyChanged:

public class Item : INotifyPropertyChanged
{
    string name;
    public string Name 
    { 
        get { return name;}
        set { name = value; FirePropertyChangedEvent("Name"); }
    }
    public ObservableCollection<Item> Items { get; set; }



    public event PropertyChangedEventHandler PropertyChanged;
    private void FirePropertyChangedEvent(string property)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(property));
        }
    }
}
2024 年 Uber 乘车分析数据集 这个综合数据集包含 2024 年 Uber 运营的详细拼车数据,提供了有关预订模式、车辆性能、收入流、取消行为和客户满意度指标的丰富见解。 数据集概述 该数据集捕获了多种车辆类型的 148,770 个总预订,并提供了拼车作的完整视图,包括成功乘车、取消、客户行为和财务指标。 主要统计数据: 总预订量:148.77K 次乘车 成功率:65.96%(93K 完成骑行) 取消率:25%(37.43K 取消预订) 客户取消:19.15%(27K 乘车) 司机取消: 7.45% (10.5K 乘车) 数据模式 数据集包含以下列: 列名称 描述 Date 预订日期 Time 预订时间 Booking ID 每次行程预订的唯一标识符 Booking Status 预订状态(已完成、客户取消、司机取消等) Customer ID 客户的唯一标识符 Vehicle Type 车辆类型(Go Mini、Go Sedan、Auto、eBike/Bike、UberXL、Premier Sedan) Pickup Location 游乐设施的起点 Drop Location 乘车目的地 Avg VTAT 司机到达上车地点的平均时间(以分钟为单位) Avg CTAT 从取件到目的地的平均行程时间(以分钟为单位) Cancelled Rides by Customer 客户发起的取消标志 Reason for cancelling by Customer 客户取消原因 Cancelled Rides by Driver 驱动程序启动的取消标志 Driver Cancellation Reason 司机取消原因 Incomplete Rides 未完成骑行标志 Incomplete Rides Reason 不完整骑行的原因

111,110

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧