我试图在syncfusion数据模板中获取一个标签,以便在属性值为null或空时将背景颜色更改为绿色。它目前不改变背景颜色。
我需要做些什么才能让它工作?
该项目正在Android应用程序上使用Xamarin与同步融合控件。
XAML
<Grid>
....
<Label Text="{Binding MyStringProperty}" ... >
<Label.Triggers>
<DataTrigger TargetType="Label"
Binding="{Binding Path=MyStringProperty,TargetNullValue=''}" Value="">
<Setter Property="BackgroundColor" Value="Green" />
</DataTrigger>
</Label.Triggers>
</Label>
</Grid>
C# ViewModel
public nullable<int> myInteger {get;set;}
public string MyStringProperty
{
get
{
if (myInteger=null || myInteger.Value < 1)
return string.Empty;
return myInteger?.ToString("n0");
}
}
2条答案
按热度按时间1bqhqjot1#
我无法在我的代码中实现上述功能,我想是因为Xamarin标签没有处理空标签的触发器。
我想到的解决方案是处理
BindingContextChanged
事件。XAML
代码隐藏
x4shl7ld2#
你可以尝试使用以下代码:
当文本值为null时使用第一个datatrigger,当文本值为空时使用第二个datatrigger。
更新:
datatrigger不适用于null值,但适用于空值。