如何从ViewModel或Codebehin更改框架的BackgroundColor属性-Xamarin Forms C



我有一个带有ListView的视图。我希望在选择项目时添加边框。我的想法是首先创建一个与内容具有相同BackgroundColor的Frame。然后在选择一个项目后,我想将背景颜色更改为红色。

<ListView
BackgroundColor="#e9e9e9"
HasUnevenRows="True"
HorizontalOptions="Fill"
ItemsSource="{Binding ABC}"
SelectedItem="{Binding XYZ}"
SelectionMode="Single"
SeparatorColor="Transparent">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Padding="15" BackgroundColor="White">
<Frame
x:Name="BorderFrame"
Padding="1"
BackgroundColor="Aqua"
CornerRadius="0">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<extendedcontrols />
<extendedcontrols />
<extendedcontrols />
<extendedcontrols />
</Grid>
</Frame>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>

关于如何在列表视图中更改所选项目的背景,已有许多案例。

首先,您可以尝试在模型中创建一个Color类型的变量,并将其绑定到Frame's背景颜色。然后将ItemTapped事件添加到ListView中。当用户点击列表视图中的项目时,您可以尝试更改项目的值以设置所选项目的背景色。

有关更多信息,您可以在这种情况下查看已接受的答案。

此外,您还可以尝试将已点击的事件添加到列表视图的视图单元格中并在代码后面的视图单元格的点击事件中设置所选项目的背景颜色。在这种情况下,公认的答案显示了细节。

一般来说,这个问题已经被提到很多次了,所以你可以在询问之前先搜索一下。编码快乐!

最新更新