2016-05-18 6 views
0

私はItemTemplateを自分のクラスにバインドしました。このクラスには、SolidColorBrushを返すメソッドがあります。どのようにXAMLにバインドすることができますか?私はSolidColorBrush変数を作ることができないので、クラスは直列化されています。メソッドバインディングまたはその他のソリューションXAML/UWP

public SolidColorBrush GetColor() 
    { 
     string ColorName = ReminderColor; 
     Color Getit; 
     if (ColorName == "1") 
      Getit = Color.FromArgb(255, 135, 136, 0); 
     else 
      if (ColorName == "2") 
       Getit = Color.FromArgb(177, 237, 237, 0); 
      else 
       if (ColorName == "3") 
        Getit = Color.FromArgb(214, 243, 153, 0); 
       else 
        if (ColorName == "4") 
         Getit = Color.FromArgb(254, 243, 153, 0); 
     SolidColorBrush TestBrush = new SolidColorBrush(Getit); 
     return TestBrush; 

    }  
+0

プロパティ(背景)をメソッドにバインドすることはできません。現在の 'SolidColorBrush'を格納する' GetRem'クラスにプロパティを作成する必要があります。 'GetColor()'をいつ呼びたいのですか? – TryToSolveItSimple

答えて

1

6ヶ月下旬XAML

<GridView.ItemTemplate> 
    <DataTemplate x:DataType="local:GetRem" > 
     <Grid Margin="-2,-5,-6,0" HorizontalAlignment="Stretch" Background="{x:Bind GetColor}"> 

С番号、しかし、あなたはXを使用しようとしている:バインドが正しく機能するために:

あなたは

を行う必要があります<Grid Margin="-2,-5,-6,0" HorizontalAlignment="Stretch" Background="{x:Bind GetColor()}"> およびpublic static SolidColorBrush GetColor() l詳細については、インク:

https://msdn.microsoft.com/en-us/windows/uwp/xaml-platform/x-bind-markup-extension

0

あなたは財産ではない方法に結合する必要があります。

public SolidColorBrush GetColor { 
    get { 
     Color GetIt; 
     switch(ReminderColor) { 
      case("1"): 
       GetIt = Color.FromArgb(255, 135, 136, 0); 
      case("2"): 
       GetIt = Color.FromArgb(177, 237, 237, 0); 
      case("3"): 
       GetIt = Color.FromArgb(214, 243, 153, 0); 
      case("4"): 
       GetIt = Color.FromArgb(214, 243, 153, 0); 

     } 
     SolidColorBrush TestBrush = new SolidColorBrush(Getit); 
     return TestBrush; 
    } 
}  
関連する問題