我想问一下如何在.net Maui 应用程序中进行条件绑定。例如
如果我有课的话
public class ClassA
{
public string Property1{get;set;}
public string Property2{get;set;}
}
而且我无权访问类实现,因此无法添加方法
在我看来,如果某个条件为 true,我想绑定到 Property1,如果该条件为 false,我想绑定到 Property2。
有没有一种方法可以在不更改 ClassA 实现的情况下从视图本身进行条件绑定?
我认为您可以通过在代码隐藏(
xaml.cs
文件)而不是.xaml
文件中设置绑定属性来实现此目标。
例如:
MainPage.xaml
中,您有一个名为 labelA
: <Label x:Name="labelA" />
MainPage.xaml.cs
构造函数中,您可以根据条件将 Text
的 labelA
属性绑定到 viewModel
属性之一。public MainPage(ClassA viewModel)
{
InitializeComponent();
BindingContext = viewModel;
if (true condition)
{
labelA.SetBinding(Label.TextProperty, nameof(viewModel.Property1));
}
else
{
labelA.SetBinding(Label.TextProperty, nameof(viewModel.Property2));
}
}
我的回答对于这个问题可能太晚了,但我看到很多人仍然遇到这个常见问题,你可以用数据触发器来做到这一点
<Label>
<Label.Triggers>
<DataTrigger TargetType="Label" Binding="{Binding BoolCondition}" Value="true">
<Setter Property="Text" Value="Orange" />
</DataTrigger>
<DataTrigger TargetType="Label" Binding="{Binding BoolCondition}" Value="false">
<Setter Property="Text" Value="Red" />
</DataTrigger>
</Label.Triggers>
</Label>