首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Silverlight Treeview内联HierarchicalDataTemplate绑定问题

Silverlight Treeview内联HierarchicalDataTemplate绑定问题
EN

Stack Overflow用户
提问于 2012-03-13 17:08:41
回答 1查看 1.6K关注 0票数 2

我有MyPOCO对象的MyCollection (它有两个string属性)。

当我尝试将HierarchicalDataTemplate实现到树视图中时,绑定不起作用,我得到了类名。

我知道如果我从控件中取出数据模板,一切都会正常工作,但我很感兴趣的是为什么这个示例不能工作。

代码语言:javascript
运行
AI代码解释
复制
<Grid x:Name="LayoutRoot" Background="White" DataContext="{Binding Source={StaticResource testVM}}">
    <sdk:TreeView Margin="8,8,8,111" ItemsSource="{Binding MyCollection}">
        <sdk:HierarchicalDataTemplate ItemsSource="{Binding MyPOCO}">
            <sdk:HierarchicalDataTemplate.ItemTemplate>
                <DataTemplate>
                    <StackPanel>
                        <TextBlock Text="{Binding Property1}"/>
                        <TextBlock Text="{Binding Property2}"/>
                    </StackPanel>
                </DataTemplate>
            </sdk:HierarchicalDataTemplate.ItemTemplate>
        </sdk:HierarchicalDataTemplate>
    </sdk:TreeView>
</Grid>

这也是ViewModel。

代码语言:javascript
运行
AI代码解释
复制
namespace MyPOCProject

{公共类MyPOCO {私有字符串property1;

代码语言:javascript
运行
AI代码解释
复制
    public string Property1
    {
        get { return property1; }
        set { property1 = value; }
    }

    private string property2;

    public string Property2
    {
        get { return property2; }
        set { property2 = value; }
    }

    public MyPOCO(string p1, string p2)
    {
        property1 = p1;
        property2 = p2;
    }
}

public class MyViewModel : INotifyPropertyChanged
{
    private ObservableCollection<MyPOCO> myCollection;

    public ObservableCollection<MyPOCO> MyCollection
    {
        get { return myCollection; }
        set { myCollection = value; RaisePropertyChanged("MyCollection"); }
    }

    public MyViewModel()
    {
        MyPOCO _poco1 = new MyPOCO("aaa1", "bbb1");
        MyPOCO _poco2 = new MyPOCO("aaa2", "bbb2");
        MyPOCO _poco3 = new MyPOCO("aaa3", "bbb3");

        MyCollection = new ObservableCollection<MyPOCO>() { _poco1, _poco2, _poco3 };
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private void RaisePropertyChanged(string propertyName)
    {
        if (this.PropertyChanged != null)
        {
            this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}

}

那么我到底做错了什么呢?

再一次..。我对这个特殊的例子很感兴趣。我想知道这个例子出了什么问题,为什么。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-14 00:00:46

您发布的代码不是分层的,换句话说:子类不包含属性MyCollection<MYPOCO> MyPOCO。下面是HierarchicalDataTemplate的一个示例

Xaml:

代码语言:javascript
运行
AI代码解释
复制
<sdk:TreeView x:Name="MyTreeView"
              HorizontalAlignment="Left"
              ItemsSource="{Binding MyCollection}"
              Width="200" Height="280">
    <sdk:TreeView.ItemTemplate>
        <sdk:HierarchicalDataTemplate ItemsSource="{Binding Path=Children}">
            <TextBlock Text="{Binding Path=Header}"/>
            <sdk:HierarchicalDataTemplate.ItemTemplate>
                <sdk:HierarchicalDataTemplate ItemsSource="{Binding Path=Children}">
                    <TextBlock Text="{Binding Path=Header}"/>
                </sdk:HierarchicalDataTemplate>
            </sdk:HierarchicalDataTemplate.ItemTemplate>
        </sdk:HierarchicalDataTemplate>
    </sdk:TreeView.ItemTemplate>
</sdk:TreeView>

代码背后的类:

代码语言:javascript
运行
AI代码解释
复制
public class MyPoco
{
    public MyPoco(string header, int sampleChildrenCount)
    {
        this.Header = header;
        this.Children = new ObservableCollection<MyPoco>();
        if (sampleChildrenCount > 0)
        {
            for (int i = 0; i < sampleChildrenCount; i++)
            {
                string newHeader = String.Format("Test {0}", sampleChildrenCount * i);
                var myPoco = new MyPoco(newHeader, sampleChildrenCount - 1)
                this.Children.Add(myPoco);
            }
        }
    }
    public string Header { get; set; }
    public ObservableCollection<MyPoco> Children { get; set; }
}

public class MyViewModel
{
    public MyViewModel()
    {
        MyCollection = new ObservableCollection<MyPoco>();
        for (int i = 0; i < 6; i++)
        {
            this.MyCollection.Add(new MyPoco(String.Format("Test {0}", i), 5));
        }
    }
    public ObservableCollection<MyPoco> MyCollection { get; set; }
}

代码幕后启动:

代码语言:javascript
运行
AI代码解释
复制
public MainPage()
{
    public MainPage()
    {
        InitializeComponent();
        MyTreeView.DataContext = new MyViewModel();
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9688700

复制
相关文章
Instagram的排名算法是如何运作的?
在这款应用于2016年7月抛弃了按时间顺序的算法之前,Instagram用户在所有帖子和好友的帖子中都有70%的丢失。尽管人们对排序的混乱反应强烈,但Instagram现在表示,相关性排序已经导致8亿
程序你好
2018/07/20
1.4K0
运输业的EDI是如何运作的?
今天开始讲解关于运输中的电子数据交换,也就是运输业使用EDI的案例。Cerasis——一家第三方物流公司开发了专有的基于网络的运输管理系统,为托运人提供技术解决方案,使他们可以保持尽可能高的效率,并可以随时获取信息。
知行软件EDI
2021/01/12
1K0
运输业的EDI是如何运作的?
你知道Thread线程是如何运作的吗?
我们在Android开发过程中,几乎都离不开线程。但是你对线程的了解有多少呢?它完美运行的背后,究竟隐藏了多少不为人知的秘密呢?线程间互通暗语,传递信息究竟是如何做到的呢?Looper、Handler、MessageQueue究竟在这背后进行了怎样的运作。本期,让我们一起从Thread开始,逐步探寻这个完美的线程链背后的秘密。
陈宇明
2020/12/15
5710
你知道Thread线程是如何运作的吗?
AI 文本生成图像技术是如何运作的
近年来,AI 文本生成图像技术取得了长足进步。十年前,谁能想到,只需要输入一段文字描述,比如“粉红色独角兽在做瑜伽”,AI 就能生成一张图像?但现在,这种技术已经成为现实。这背后的核心技术叫做文本到图像合成,依托于深度学习模型,比如生成对抗网络(GANs)、变分自编码器(VAEs)和新的扩散模型。如果这些名词听起来有点复杂,别担心,我们可以更直观地理解它们的工作原理。
用户10277315
2024/09/10
2450
区块链101:比特币交易是如何运作的?
简单的版本: 如果我想把我的一些比特币发送给你,我发布了我的意图,而节点扫描整个比特币网络来验证我是否有我想要发送的比特币,而2)还没有发送给其他人。一旦该信息被确认,我的事务就会被包含在一个“块”中,这个“块”被附加到上一个块中,因此“区块链”这个术语就会被包含进来。事务不能被撤消或篡改,因为它意味着重新执行后面的所有块。 变得有点复杂: 我的比特币钱包实际上并没有持有我的比特币。它所做的是保存我的比特币地址,它记录了我所有的交易,因此我的余额。这个地址——一个长串的34个字母和数字——也被称为我的“
架构师研究会
2018/04/09
9740
区块链101:比特币交易是如何运作的?
slf4j中的桥接器是如何运作的?
阅读分析slf4j的日志源码,发现其中涵盖了许多知识点和优秀的设计,关键它们都是活生生的实践案例。写成系列文章与大家分享,欢迎持续关注。第4篇。
程序新视界
2020/12/01
1.1K0
关系型数据库是如何运作的(上)
一说到关系型数据库,我总感觉缺了点什么。如果你尝试透过“关系型数据库是如何运作的”的关键词句来进行搜索,其搜索结果是少量的而且内容是简短的。难道说是由于它已经太老旧而已经不再流行吗? 作为一名开发者,我讨厌使用我不明白的技术。此外,关系型数据库已经使用超40年,肯定有它过人的原因。因此,我花了大量时间来想真正弄懂它里面如同黑盒子那样的奥秘。关系型数据库实际上是非常有趣的,因为它是基于实用和复用的概念。但是限于篇幅,以下我将把重点放在数据库如何处理SQL查询的问题上。本文内容大致划分为以下三部分: 1.低阶
CSDN技术头条
2018/02/11
1.2K0
关系型数据库是如何运作的(上)
HTTPS 是如何运作的?它解决了什么问题?
首先,HTTPS 并不是一个新的协议,而是 HTTP + SSL/TLS,即 SSL(Security Socket Layer)和 TLS(Transport Layer Security) 的缩写。但其实作为 SSL 的继任者,TLS 已经完全替代了 SSL,只是大概还是习惯使用 SSL 这个名词。为了严谨,后续都会继续使用 TLS。
SH的全栈笔记
2023/08/17
3990
HTTPS 是如何运作的?它解决了什么问题?
TikTok背后的AI如何运作
TikTok是一款视频共享应用程序,可让用户创建和共享短视频。它以个性化的“just for you”的推荐给用户留下了深刻的印象。它在Z世代中非常受欢迎,容易让人上瘾。在它的背后,它是由人工智能技术驱动的。
喵叔
2022/05/05
9200
TikTok背后的AI如何运作
网络攻击是如何运作的—一份完整的列表 ( 2 )
作者:PAUL CUCU 译者:java达人 来源:https://heimdalsecurity.com/blog/cyber-attack/(点击阅读原文前往) 译文最后将介绍本人安全强迫症 技术攻击 这类攻击通常针对网络基础设施,如数据库、DNS、过时的软件及其他类似的技术。 恶意广告 恶意广告指通过网络广告传播恶意软件,攻击者既可以用恶意代码感染已经存在的合法广告,也可以放置自己受病毒感染的广告。 恶意广告对恶意黑客来说是非常有利的,因为他不需要担心如何传播恶意软件。广告网络做了所有的艰苦工作,使
java达人
2018/01/31
2.1K0
网络攻击是如何运作的—一份完整的列表 ( 2 )
网络攻击是如何运作的—一份完整的列表 ( 1 )
作者:PAUL CUCU 译者:java达人 来源:https://heimdalsecurity.com/blog/cyber-attack/ 你一定在新闻上听到了这个消息:“国家X指责Y国家对其基础设施发动了网络攻击”,或者“X公司大量的信息泄漏,数百万用户的账户信息被泄露”。 有时候,你甚至不需要在新闻上听到这个消息,但是它就出现在你的电脑屏幕上:“你的信息已经被加密了,唯一的办法就是付钱给我们。” 所有这些都是网络攻击。 什么是网络攻击 网络攻击是恶意的互联网操作,主要由犯罪组织发起,他们希望窃取
java达人
2018/01/31
1.8K0
网络攻击是如何运作的—一份完整的列表 ( 1 )
首席工程师揭秘:LinkedIn大数据后台是如何运作的
原文链接:https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying
IT阅读排行榜
2018/08/15
4810
首席工程师揭秘:LinkedIn大数据后台是如何运作的
首席工程师揭秘:LinkedIn大数据后台是如何运作的
“不懂得日志,你就不可能完全懂得数据库”Jay Kreps说道,Jay Kreps是LinkedIn公司首席工程师,本文介绍他本人对于日志的心得体会,包括日志是什么,如何在数据集成、实时处理和系统构建中使用日志等。 ◆ ◆ ◆ 我们最后要讨论的是在线数据系统设计中日志的角色。 在分布式数据库数据流中日志的角色和在大型组织机构数据完整中日志的角色是相似的。在这两个应用场景中,日志是对于数据源是可靠的,一致的和可恢复的。组织如果不是一个复杂的分布式数据系统呢,它究竟是什么? 如果换个角度,你可以看到把整个组织系
大数据文摘
2018/05/22
6350
详解Hadoop HA 如何运作
最近对于Hadoop技术有比较大的兴趣,但由于接触时间不长,很多技术细节认识不够,作为一个技术人员,本着追根溯源的精神,还是有必要吃透,也为自己的工作沉淀一些经验总结。网上关于Hadoop HA的资料多集中于怎么搭建HA,对于HA为什么要这么做描述甚少,所以本文对于HA是如何搭建的暂不介绍,主要是介绍HA是怎么运作,QJM又是怎么发挥功效的。
挖掘大数据
2018/01/16
1.6K0
详解Hadoop HA 如何运作
品玩SAS:贷款违约的是哪些人?
我们知道,一笔贷款主要通过收息或者收费的方式获取息、费收入,如果借款客户违约,放贷机构非但无法获得息费,更将面临本金的损失,而这部分损失是要更多的息费才能弥补的,也就是说如果无法将违约率控制在一定范围之内,放贷机构不仅“竹篮打水一场空”,而且还要“自我割肉”。
机器思维研究院
2019/07/12
6670
品玩SAS:贷款违约的是哪些人?
MapReduce 计算框架如何运作
分布式计算需要将不同服务器上的相关数据合并到一起进行下一步计算,这就是 shuffle
Michael阿明
2021/09/06
3810
工业4.0实验室告诉你真正的智能工厂是如何运作的
随着信息技术的发展,工厂将引入大数据技术进行分析优化管理,在计算机虚拟环境中,对整个生产过程进行仿真、评估和优化,最终将实现自动化、智能化、互联化的生产制造,能实现这种制造方式的工厂被称为智能工厂。工
钱塘数据
2018/02/28
1.2K0
工业4.0实验室告诉你真正的智能工厂是如何运作的
CSS元素选择器是怎样运作的?
在前端工程师的日常工作中,使用 CSS 元素选择器是稀松平常的事;无论你是编写一般的 CSS 还是需要经过编译的 SASS,SCSS,LESS等,最终都被编译成一行一行的 CSS 样式属性,最终交给浏览器解析并套用。但是你想过没有这是如何实现的呢?
疯狂的技术宅
2020/11/03
1.7K0
CSS元素选择器是怎样运作的?
Scrum团队如何运作? - 简要指南
Scrum团队是一组合作的人员,他们共同提供所需的和承诺的产品增量,其中包括三个角色:
Warren2Lynch
2019/01/02
2.1K0
Scrum团队如何运作? - 简要指南
产品从无到有的方法框架——5MVVP框架,实际是如何运作的?
一个职业、一种思维、一个方案 产品经理到底是什么,究竟要做什么事 苏杰老师给出了新的答案 如果你有过:  迷茫  —— 没有想法  无助  —— 想法难以落地  瓶颈  —— 缺乏创造力 就来看看这本苏杰老师新著《人人都是产品经理(创新版):低成本的产品创新方法》。 本书从案例启发到思维落地,创造性地提出一套应对多变时代的低成本创新方法——5MVVP,用于解决产品创新从无到有各个环节碰到的问题。 MVV即Minimum Viable/Valuable,意为最小可行且有价值的。不同于精益创业里的最小可行产品
博文视点Broadview
2023/05/19
4380
产品从无到有的方法框架——5MVVP框架,实际是如何运作的?

相似问题

以太是如何运作的

10

“区块”是如何运作的?

20

开放版税是如何运作的?

20

NFT市场是如何运作的?

20

这个合同骗局是如何运作的?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档