2014-07-23 5 views
5

Ich habe App auf Windows Phone 8.1 entwickelt. Einige meiner Seiten haben den benutzerdefinierten Konverter; zum Beispiel:Windows Phone 8.1 - Konverter funktionieren nicht mit Plattform Ziel ARM

using System; 
using System.Globalization; 
using Windows.UI.Xaml.Data; 

namespace XXXXX.Model.Converters 
{ 
    public sealed class DateTimeToStringConverter : IValueConverter 
    { 
     public object Convert(object value, Type targetType, object parameter, string language) 
     { 
      var date = (DateTime)value; 

      return date.ToString("g", new CultureInfo("it-IT")); 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, string language) 
     { 
      throw new NotImplementedException(); 
     } 
    } 
} 

Im XAML ich habe:

<Page 
    x:Class="XXXXX.Views.VehiclesView" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:converters="using:XXXXX.Model.Converters" 
    mc:Ignorable="d" 
    FontFamily="{StaticResource PhoneFontFamilyNormal}" 
    Foreground="{StaticResource PhoneForegroundBrush}"> 

    <Page.Resources> 
     <converters:DateTimeToStringConverter x:Key="DateTimeToStringConverter" /> 
     <converters:StringFormatConverter x:Key="StringFormatConverter" /> 
    </Page.Resources> 

Und auf diese Weise verwenden:

<TextBlock Grid.Row="3" Grid.Column="0" Text="{Binding Distance, Converter={StaticResource StringFormatConverter}, ConverterParameter='{}{0} Km'}"></TextBlock> 

1) Warum funktioniert der Compiler mir diesen Fehler gibt?

2) Warum funktioniert es, wenn ich die Zielplattform zu x86 ändere?

3) Wenn ich in XAML und nicht in Code Behind arbeiten wollte, gibt es Alternativen zum Konverter?

+0

Stellen Sie sicher, dass Ihr Konverter in derselben Baugruppe –

+0

ohne ConverterParameter und ohne CultureInfo versucht. auch nur öffentliche Klasse. Und säubere das Projekt und führe den Wiederaufbau durch. Obwohl im Aussehen alles in Ordnung ist. – IceFog

+0

Können Sie versuchen, neu zu erstellen? –

Antwort

4

Versuchen Sie, die Konverter in der dedizierten Klassenbibliothek mit der Zielplattform "AnyCPU" zu verschieben, und referenzieren Sie sie in Ihrem Anwendungsprojekt.

+0

Auf diese Weise funktioniert es ... Vielen Dank Max! – Fra

+0

Können Sie erklären, warum es in einer separaten Bibliothek sein muss? – sydd

+2

Mit freundlichen Grüßen Ich weiß nicht warum, aber es funktioniert ... – Max

Verwandte Themen