2012-02-14 36 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