2016-06-21 41 views
2

我的一個XAML文件顯示了XAML設計一個奇怪的行爲(而不是在運行時):顯示綁定屬性名稱,而不是財產WPF XAML設計值

public class MyDesignTimeViewModel 
{ 

    public MyDesignTimeViewModel() 
    { 
     MyText = "abc"; 
     MyInt = 5; 
    } 

    public string MyText { get { ... } } 
    public int MyInt { get { ... } } 
} 

然後在XAML:

<UserControl xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      ... 
      d:DataContext="{d:DesignInstance vm:MyDesignTimeViewModel}" 
      > 
    <TextBlock Text="{Binding MyText}" /> 
    <TextBlock Text="{Binding MyInt}" /> 
</UserControl> 

在XAML設計,兩個TextBlock的情況下,顯示下面的內容:

MyText 
0 

的XAML DES igner顯示字符串屬性的屬性名稱,對於int屬性,它顯示0.

錯誤窗口中沒有錯誤。此外,它似乎實際上讀取的屬性,因爲如果我將綁定更改爲不存在的屬性名稱,內容會消失。

我重新啓動了Visual Studio和我的電腦,並刪除了.suo文件。

對此行爲的任何解釋?

回答

2

原來丟失的東西是IsDesignTimeCreatable屬性:

d:DataContext="{d:DesignInstance vm:MyDesignTimeViewModel, IsDesignTimeCreatable=true}" 

與該屬性,一切正常。

+3

人們嘗試的另一件事是:我的訣竅是刪除.vs文件夾(可能還有bin和obj文件夾)。 Yeesh。 – Vimes

-1

我遇到了這個問題,但原因實際上是我沒有啓用XAML設計器中的啓用項目代碼。