2012-02-14 2 views
2

Я не могу заставить его работать с IValueConverter для Windows Phone 7.0. Вот мой XAML код элемента связанного приложения:Windows Phone IValueConverter Issue

<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

Вы должны дать первый человек, который ответил ПРАВИЛЬНЫЙ ОТВЕТ когда его CORRECT – MyKuLLSKI

+1

Ну, мое решение ответов основано на том, какой ответ лучше всего объяснить, как решить проблему, и это может повредить вам, но я понял, что лучше объяснить другое. – parek

ответ

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

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> 

Убедитесь, что вы измените NAMESPACE и УЗЕЛ к тому, что ваш является

+0

Где находится местоположение ресурсов? Я не знаю, где его вставить, пожалуйста, укажите. – parek

+0

Я отредактировал мой ответ – MyKuLLSKI

Смежные вопросы