在ListView Xamarin.Forms中更改TextColor

时间:2019-04-14 09:10:55

标签: c# xaml listview xamarin.forms

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 >

2 个答案:

答案 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}"
相关问题