如何在Windows Phone 8中将ValueConverter用作StaticResource

时间:2013-02-15 11:20:20

标签: c# xaml windows-phone-8 ivalueconverter valueconverter

以下是我的App.xaml

<Application
    x:Class="SpinrWindowsMobile.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    >

    <!--Application Resources-->
    <Application.Resources >
        <ResourceDictionary>

            <local:LocalizedStrings xmlns:local="clr-namespace:SpinrWindowsMobile" x:Key="LocalizedStrings"/>
            <converter:TextColorConverter xmlns:converter="clr-namespace:SpinrWindowsMobile.Common" x:Key="TextColorConverter"></converter:TextColorConverter>

        </ResourceDictionary>
    </Application.Resources>

    ....
</Application>

我在NameSpace中写了 TextColorConverter.cs SpinrWindowsMo​​bile.Common 在启动应用程序时它给我异常无法创建类型SpinrWindowsMo​​bile.Common.TextColorConverter 的实例。我不知道我错过了哪里。 下面是我的 TextColorConverter.cs

class TextColorConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            // some code
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
           // some code
        }
    }

我使用Microsoft Visual Studio 2012 for Windows Phone作为我的开发工具。 我想要分享的另一件事我没有在 System.Windows.Data 命名空间中获得 ValueConverstionAttribute类。 任何人都可以指导我在哪里错了。

1 个答案:

答案 0 :(得分:17)

您将使您的班级成为公共班级(默认情况下,它将是内部班级)。否则无法实例化。

public 类TextColorConverter:IValueConverter