2012-02-14 72 views
2

我無法使用它適用於Windows Phone 7.0的IValueConverter。 下面是綁定的元素我的XAML代碼:Windows Phone IValueConverter問題

<TextBlock Text="{Binding Verified, Converter={StaticResource TextConverter}}" HorizontalAlignment="Left" VerticalAlignment="Bottom" FontSize="14" /> 

這裏是XAML文件的代碼隱藏。

public class TextConverter : System.Windows.Data.IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     if ((bool)value == false) 
     { 
      return ("Verified is False!"); 
     } 
     if ((bool)value == true) 
     { 
      return ("Verified is True!"); 
     } 
     else 
     { 
      return ("Error!"); 
     } 
    } 
    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return null; 
    } 
} 

它認爲這是正確的,但它似乎是一個應用程序甚至無法找到TextConverter類,我有你的地方申報呢?當我運行這個應用程序時,我得到一個Application_UnhandledException。我希望有人能幫助我,謝謝。

+0

你應該給誰回答正確答案的第一人當它的正確 – MyKuLLSKI 2012-02-15 22:09:08

+1

那麼我對答案的接受是基於哪個答案最好解釋如何解決問題,它可能會傷害你,但我雖然另一個更好地解釋。 – parek 2012-02-22 13:06:00

回答

3

爲了在XAML中使用您的類,您必須將其添加到您的資源中。因此,首先,聲明你的變頻器在XAML命名空間(其中其他命名空間聲明):

xmlns:src="clr-namespace:MyNameSpace" 

的你的轉換器添加到資源部分。然後在PhoneApplication頁的第一個元素是:

<Control.Resources> 
    <src:TextConverter x:Key="myConverter"/> 
</Control.Resources> 

然後,你可以通過它的鍵來訪問你的類:

... Text="{Binding Verified, Converter={StaticResource myConverter}}" ... 

尼科

+0

...答案已經givin – MyKuLLSKI 2012-02-14 22:11:29

4

您必須將轉換器添加到資源:

如果你想用它在你的應用程序把它的App.xaml

<Application 
    .... 
    .... 
    xmlns:converter="clr-namespace:NAMESPACE;assembly=ASSEMBLY"> 

<Application.Resources> 
    <converter:TextConverter x:Key="TextConverter"/> 
</Application.Resources> 

如果你想在一個窗口中把它在[窗口]的.xaml

<Window 
    .... 
    .... 
    xmlns:converter="clr-namespace:NAMESPACE;assembly=ASSEMBLY"> 

<Window.Resources> 
    <converter:TextConverter x:Key="TextConverter"/> 
</Window.Resources> 

確保您更改命名空間和組件,以你的是什麼

+0

資源的位置在哪裏?我不知道在哪裏插入它,請指定。 – parek 2012-02-14 22:05:27

+0

我編輯了我的答案 – MyKuLLSKI 2012-02-14 22:10:10