方法绑定或其他解决方案XAML/UWP
Method binding or other solutions XAML/UWP
我已将 ItemTemplate 绑定到我的 class。 class 有一个方法,其中 returns 一个 SolidColorBrush。我如何将它绑定到 XAML? class 是序列化的,所以我不能只创建 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()
您可以查看 link 了解详情:
https://msdn.microsoft.com/en-us/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;
}
}
我已将 ItemTemplate 绑定到我的 class。 class 有一个方法,其中 returns 一个 SolidColorBrush。我如何将它绑定到 XAML? class 是序列化的,所以我不能只创建 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()
您可以查看 link 了解详情:
https://msdn.microsoft.com/en-us/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;
}
}