2017-08-29 3 views
0

私は赤または緑で色付けする必要があるいくつかの項目があります(値が正または負であるかどうかによって異なります)。私は、他のコンバータが既に作成されているフォルダと同じフォルダ内にプロジェクトを作成しました(このプロジェクトは私のものだけではありません)。xamlのコンバータを使う方法Xamarin.form

<my:SingolaRigaCollapsed Even="False" Height="40" HeaderText="Variazione patrimoniale &#x0a; al lordo dei proventi" ValueText="{Binding RendimentoAlLordoProventi}" ValueColor="{Binding RendimentoAlLordoProventi, Converter={StaticResource ValueToColorConverter}}"/> 

RendimentiAlLordoProventiは文字列で、i'l文字列の値に応じてvaluecolorを設定したい: は今、私はそうしようとしました。

コンバータはこれです:この、XAMLのロード上のプログラムのクラッシュのような演技

class ValueToColorConverters : Windows.UI.Xaml.Data.IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, string language) 
    { 
     return value.ToString().Contains("-") ? Color.Red : Color.Green; 
    } 

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

それは正しくないため ValueColorに結合性の、または何かのためだ場合、私は知りませんelse。

p.s.コンバータの名前は手で挿入されます。私は理由を知りませんが、これはVSが

答えて

1

を見つけることができませんだけコンバータだった私は、それはあなたのコードで間違っているかわからないんだけど、私はそれが2つのいずれかでき推測:

  1. あなたのページに、またはアプリケーション内でグローバルにコンバーターを宣言しませんでした。

    <ContentPage.Resources> 
        <ResourceDictionary> 
         <converters:ValueToColorConverter x:Key="ValueToColorConverter" /> 
        </ResourceDictionary> 
    </ContentPage.Resources> 
    

    をなど、あなたのアプリケーションのルートにコンバータの名前空間を追加することを忘れないでください:

これを行うには、あなたのページにこの部分を追加今xmlns:converters="clr-namespace:YourApp.Namespace.Converters"

ますあなたが今やっているようにそれを使用できるはずです。

  1. 自分自身を変換する際に何か問題が発生しています。 valuenullある場合はどうなりreturn value.ToString().Contains("-") ? Color.Red : Color.Green;

    :?私はあなたがこれをやっている参照

今、あなたのアプリは爆発するでしょう。オブジェクトを取り込むので、可能なすべてのシナリオを処理する必要があります。正しいタイプにキャストし、ヌルでないことを確認してください。

MFractorをご覧ください。このVisual Studio for Macの拡張機能は、コンバータのタイプセーフティを提供します。

+0

私はWPページにそのコードを追加できません。 今、私はこの行を追加しようとしました: xmlns:conv = "using:PROJ.WP.Converters" しかし、まだ動作していません。今私は実行を再試行するためにgopinだから私はあなたにエラーが何であるか教えてくれる –

+0

WPページとは何ですか?なぜあなたはそれを追加できませんか? –

+0

このアプリには、Xamarin.FormsコードとXamarin.WPコードが混在しています(共有とネイティブ、なぜか分かりません)。私が今働いているページはContentPageタグを許可していません。 私はContentPage.Resourceタグを追加できません –

関連する問題