2016-05-18 7 views
0

У меня есть ItemTemplate, привязанный к моему классу. Класс имеет метод, который возвращает SolidColorBrush. Как я могу привязать его к XAML? Класс сериализуется, поэтому я не могу просто сделать переменную SolidColorBrush.Метод связывания или другие решения XAML/UWP

XAML

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

С #

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

вы не можете связать свойство (фон) для метода - вам нужно создать свойство в своем классе 'GetRem', который хранит текущую' SolidColorBrush'. Когда вы хотите, чтобы 'GetColor()' вызывался? – TryToSolveItSimple

ответ

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; 
    } 
}  
Смежные вопросы