我正在将ListView ItemSource
设置为List<T>
,其中T
是我的模型。我正在将此List<T>
的某些属性绑定到XAML中的某些Label。现在,基于属性,我想将标签设置为某些文本。
例如,if (Property.IsCompleted == true)
,我可能想将ListView
的“视图”单元格中的标签设置为“完成”,而不是“真”。
我希望这可以总结问题。我尝试了其他方法,但都无济于事。
这是我的ListView的项目显示方法:
private void bookingLV_ItemAppearing(object sender, ItemVisibilityEventArgs e)
{
BookingsModel convert = (BookingsModel)e.Item;
var select = convert.IsCompleted;
if(select == true)
{
IsDone = "Completed";
}
IsDone = "Pending";
}
我有一个名为IsDone的自定义属性:
public string IsDone { get; set; }
这就是我如何在Xaml的ListView的视图单元中绑定IsDone
<Label Text="{Binding IsDone}"></Label>
我希望能够基于我的模型对象的属性将“标签”的“文本”属性设置为某些文本。
答案 0 :(得分:0)
在模型中创建一个只读属性,该属性返回基于另一个属性的值
public string IsDone
{
get
{
if (select) return "Completed";
return "Pending";
}
}
如果您使用的是INotifyPropertyChanged
,则需要确保“ trigger”属性的设置程序针对这两个事件均触发PropertyChanged
个事件
public bool selected {
get {
...
}
set {
...
PropertyChanged("selected");
PropertyChanged("IsDone");
}
}