P.S我在XAML中具有ListView和TextCell,但我想更改textColor 在我的代码中
我正在为我的应用程序做DarkMode,下一个问题是: 单元格-TextCell
Cell.TextColor = Color.White;
告诉我一个错误:当前上下文中不存在单元格
如何将其绑定到我的上下文或更改文本颜色。请告诉我这样做的任何方式。...
UPD:
创建单元格:
我用XAML做到了
<StackLayout Margin="20,35,20,20" x:Name="Main_View2">
<ListView x:Name="Main_Menu" ItemsSource="{Binding Planets}" ItemSelected="Handle_ItemSelected" ItemTapped="Handle_ItemTapped">
<ListView.ItemTemplate>
<DataTemplate >
<TextCell Text="{Binding Name}" x:Name="labelTable" TextColor="#FF851B">
</TextCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout >
答案 0 :(得分:2)
方法1 设置颜色如下:
<ListView ItemsSource="{Binding Planets}" CachingStrategy="RecycleElement">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding Name}" TextColor="White"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
方法2 :在模型(行星)中定义一个属性,并在其中提供颜色,然后按如下所示进行绑定:
<ListView ItemsSource="{Binding Planets}" CachingStrategy="RecycleElement">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding Name}" TextColor="{Binding MyTextColor}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
方法3 :在ViewModel中为TextColor定义一个属性,然后按如下所示进行绑定
Color myTextColor = Color.White;
public Color MyTextColor
{
get { return myTextColor; }
set { SetProperty(ref myTextColor, value); }
}
<ListView x:Name="Main_Menu" ItemsSource="{Binding Planets}" CachingStrategy="RecycleElement">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding Name}" TextColor="{Binding Source={x:Reference Main_Menu}, Path=BindingContext.MyTextColor}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
希望有帮助。
答案 1 :(得分:0)
我可以使用资源来做到这一点: `
App.Current.Resources [“ textColor”] = Color.Black;`
以及在XAML中:
TextColor="{DynamicResource Key=textColor}"