У меня есть ListView, который использует ItemTemplate. Я хочу изменить соответствующий цвет текста метки при нажатии на элемент.
Соответствующие части моего кода:
public class Especialidade
{
public string id { get; set; }
public string especialidade { get; set; }
public Color color { get; set; }
}
public List<Especialidade> ListaEspecs;
Я устанавливаю ListView ItemsSource вручную и не использую привязку:
ListViewEspecs.ItemsSource = ListaEspecs;
Код, который должен изменить цвет (цвет должен связываться автоматически)
async void ListViewEspecs_ItemTapped(System.Object sender, Xamarin.Forms.ItemTappedEventArgs e)
{
var x = e.Item as Especialidade;
x.color = Color.Orange;
}
Xaml
<ListView x:Name="ListViewEspecs" ItemTapped="ListViewEspecs_ItemTapped" Grid.Column="0" Grid.Row="1" SelectionMode="None" BackgroundColor="Transparent" SeparatorVisibility="None" HorizontalOptions="FillAndExpand" VerticalOptions="StartAndExpand" VerticalScrollBarVisibility="Never" SeparatorColor="Transparent">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid Margin="0,0,0,5">
<Grid.RowDefinitions>
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<Label Text="{Binding especialidade}" Grid.Column="1" Grid.Row="0" FontSize="16" HorizontalTextAlignment="Start" HorizontalOptions="StartAndExpand" VerticalOptions="CenterAndExpand" TextColor="{Binding color}" />
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Текст метки является ожидаемым, но при нажатии на пункт, приложение замораживается без исключения. Как я могу это сделать?