簡體   English   中英

方法綁定或其他解決方案XAML / UWP

[英]Method binding or other solutions XAML/UWP

我有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;

    }     

延遲了6個月,但您正嘗試使用x:Bind正常運行:

你應該做

<Grid Margin="-2,-5,-6,0" HorizontalAlignment="Stretch" Background="{x:Bind GetColor()}">public static SolidColorBrush GetColor()您可以查看詳細信息鏈接:

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

您應該綁定到屬性而不是方法。 這樣的事情會更好:

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;
   }
}    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM