我正在使用listview。首先,它成功加载列表的所有项目。然后,我进入另一个屏幕,从那里设置背景色值并将其保存在本地。当我返回列表视图屏幕时,应该更改列表视图的行单元格的背景色。但它仍然是相同的。仅当我重新启动应用程序时,它才会更改。
我正在使用转换器在运行时更改颜色。
请让我知道我是否可以使用转换器执行此操作,还是应该更改它或为行单元格的背景色设置属性
答案 0 :(得分:0)
您可以使用数据绑定并将模式设置为TwoWay
。
使用{Binding Mode=TwoWay}
,如果用户输入的字符串是有效的十六进制格式,则颜色将改变。
<ViewCell>
<StackLayout BackgroundColor="{Binding Color}" Orientation="Vertical">
<Entry x:Name="entry" Text="{Binding Title ,Mode=TwoWay}" TextColor="Black"/>
</StackLayout>
</ViewCell>
public class Model : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
string _title;
public string Title
{
get
{
return _title;
}
set
{
if (_title!= value)
{
_title = value;
NotifyPropertyChanged();
TextColor = Color.FromHex(value);
}
}
}
Color _textColor;
public Color TextColor
{
get
{
return _textColor;
}
set
{
if (_textColor != value)
{
_textColor = value;
NotifyPropertyChanged();
}
}
}
protected virtual void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}