none
关于Name属性的小问题一枚 RRS feed

  • 问题

  • 先看一段XAML代码

    textBlock2.Name = "yunfan";
    textBlock1.Name = "yunfan";
    TextBlock textBlock = this.FindName("yunfan") as TextBlock;
    
    textBlock.Text = "I am the first";

    然后更改为

    textBlock1.Name = "yunfan";
    textBlock2.Name = "yunfan";
    TextBlock textBlock = this.FindName("yunfan") as TextBlock;
    
    textBlock.Text = "I am the first";

    得到的结果不同,第一次是TextBlock1倍的Text属性被修改,第二次是TextBlock2的属性被修改.

    这是为什么???想请教一下FindName方法是如何工作的

    2014年12月31日 12:26

答案

  • FindName 的兩個特性

    (1) 他是遞迴搜尋的, 所以一旦有相同的值, 回傳的一定是最後一個

    (2) FindName 搜尋的對象其實是一個 Hash Table, 所以當你重新命名的時候, 在 Hash Table 內的順序會改變.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年12月31日 19:55

全部回复

  • FindName 的兩個特性

    (1) 他是遞迴搜尋的, 所以一旦有相同的值, 回傳的一定是最後一個

    (2) FindName 搜尋的對象其實是一個 Hash Table, 所以當你重新命名的時候, 在 Hash Table 內的順序會改變.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年12月31日 19:55
  • 虽然没看太懂,但是很感谢您的回复.
    2015年1月1日 4:07