2010-03-28 238 views
0

調試此類SelectTemplate方法運行2次,但爲什麼?爲什麼SelectTemplate方法在調試模式下運行2次?

該項目第一次始終爲空。

public class PersonDataTemplateSelector : DataTemplateSelector 
{ 
    public override DataTemplate SelectTemplate(object item,DependencyObject container) 
    { 
     if (item is Person) 
     { 
      Person person = item as Person; 

      Window window = Application.Current.MainWindow; 

      if (System.ComponentModel.DesignerProperties.GetIsInDesignMode(window)) 
       return null; 

      if (person.Gender == "male")    
       return window.FindResource("boysViewTemplate") as DataTemplate; 
      else     
       return window.FindResource("girlsViewTemplate") as DataTemplate; 

     } 
     return null; 
    } 
} 

回答

0

您可以設置一個破發點,並檢查堆棧跟蹤驗證,但我相信這是一個空的輸入調用一次當視覺樹設置和第二次是實際填充綁定時。

0

如果您的選擇器要提供「空」或「加載」的外觀,第一個調用是讓您的選擇器有機會在元素加載時提供該模板。

+0

你好MIKE, 你有任何有關你的空白/加載等信息/鏈接?我沒有找到任何東西。 – msfanboy 2010-04-01 16:55:28

相關問題