方法绑定或其他解决方案XAML / UWP

时间:2016-05-18 01:00:36

标签: c# xaml uwp uwp-xaml

我把ItemTemplate绑定到我的班级。该类有一个返回SolidColorBrush的方法。我怎么能把它绑定到XAML?该类是序列化的,所以我不能只生成SolidColorBrush变量。

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;

    }     

2 个答案:

答案 0 :(得分:2)

迟了6个月,但是您正在尝试使用x:Bind功能不正确:

你应该做

public static SolidColorBrush GetColor()/%USER_NUMBER%/content 您可以看到链接以获取详细信息:

also use rleid

答案 1 :(得分: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;
   }
}