在 Xamarin 表单代码后面使用 2 个值设置可见 属性 的绑定
set binding for visible property using 2 values in Xamarin forms code behind
我有一个包含标签的列表。列表视图在 XAML 文件中声明,其中列表的数据单元格是在 cs 文件中以编程方式生成的。我需要根据 2 个字段值在列表中为此标签绑定可见 属性。
Xaml代码:
<ListView x:Name="lvItemSigns" HasUnevenRows="True" SeparatorVisibility="Default" SeparatorColor="Gray">
cs文件代码:
lvItemSigns.ItemTemplate = new DataTemplate(typeof(DataCell));
lvItemSigns.ItemsSource = VM.ItemSignsList;
class DataCell : ViewCell
{
Label label;
public DataCell()
{
// has grid
var label = new Label();
label.TextColor = Color.Black;
label.Margin = 4;
label.Text = "test";
grid.Children.Add(label, 2, 1);
label.SetBinding(Label.IsVisibleProperty, new
Binding("SubItem", BindingMode.TwoWay, new
BooleanConverter(), null, null, "cs-file_name"));
grid.Children.Add(stackLayout, 0, 3);
grid.Margin = new Thickness(8,0,0,0);
View = grid;
}
}
我可以使用 1 个值绑定可见 属性,如何使用 2 个值来完成?
在您的模型上创建一个 read-only 属性
public bool Visible
{
get
{
// test for multiple conditions here
return PropertyA && PropertyB;
}
}
每当设置任何依赖属性的值时,您还需要提出 PropertyChanged("Visible")
。
我有一个包含标签的列表。列表视图在 XAML 文件中声明,其中列表的数据单元格是在 cs 文件中以编程方式生成的。我需要根据 2 个字段值在列表中为此标签绑定可见 属性。
Xaml代码:
<ListView x:Name="lvItemSigns" HasUnevenRows="True" SeparatorVisibility="Default" SeparatorColor="Gray">
cs文件代码:
lvItemSigns.ItemTemplate = new DataTemplate(typeof(DataCell));
lvItemSigns.ItemsSource = VM.ItemSignsList;
class DataCell : ViewCell
{
Label label;
public DataCell()
{
// has grid
var label = new Label();
label.TextColor = Color.Black;
label.Margin = 4;
label.Text = "test";
grid.Children.Add(label, 2, 1);
label.SetBinding(Label.IsVisibleProperty, new
Binding("SubItem", BindingMode.TwoWay, new
BooleanConverter(), null, null, "cs-file_name"));
grid.Children.Add(stackLayout, 0, 3);
grid.Margin = new Thickness(8,0,0,0);
View = grid;
}
}
我可以使用 1 个值绑定可见 属性,如何使用 2 个值来完成?
在您的模型上创建一个 read-only 属性
public bool Visible
{
get
{
// test for multiple conditions here
return PropertyA && PropertyB;
}
}
每当设置任何依赖属性的值时,您还需要提出 PropertyChanged("Visible")
。