J'ai créé une liste de réception avec des éléments basés sur des données enregistrées dans la base de données. Sa liste d'ordinateur avec peu de propriétés en tant que nom, iPadress, port et sélectionné. Si sélectionné = l'ordinateur True est marqué par défaut et je dois modifier son apparence dans ListView.
J'ai besoin de créer une liaison à la propriété qui ne fait partie de la table. p>
J'ai une liste simple d'ordinateurs (xaml) p> base Affichage de l'ordinateur connecté à la base de données. p> basé sur _selected que j'ai ajouté propriété "sélectionnée_color" dans la même classe. L'objectif est de changer la couleur arrière des commandes si l'élément est sélectionné. P> public string Selected_Color
{
get
{
string Text_Color = string.Empty;
try
{
if (Selected == true)
{
Text_Color = "#33cc33";
}
else
{
Text_Color = "#000000";
}
}
catch (Exception ex)
{
return "#000000";
}
return Text_Color;
}
}
3 Réponses :
Utilisez l'attribut alternativement, vous pouvez utiliser un ValueConverter Pour définir la couleur en fonction du Ignorer code> pour indiquer à SQLite d'ignorer votre nouvelle propriété
sélectionné code > Propriété p> p>
Merci pour votre réponse, Je l'ai compris en ajoutant sélectionné_color en tant que propriété de table d'ordinateur.
[Table("Computer")] public class Computer { [PrimaryKey, AutoIncrement] public int Id { get; set; } public string ComputerName { get; set; } public string IPAddress { get; set; } public string Port { get; set; } public bool Selected { get; set; } [Ignore] public string Selected_Color { get { string Text_Color = string.Empty; try { if (Selected == true) { //Green color Text_Color = "#33cc33"; } else { Text_Color = "#000000"; } } catch (Exception ex) { return "#000000"; } return Text_Color; } } }
Je voulais juste ajouter une réponse pour tous ceux qui se battraient avec un problème similaire, que j'ai trouvé une meilleure façon de le faire. Vous pouvez définir des modèles de données en fonction de votre propriété, puis l'utiliser pour dessiner votre liste de réception comme ceci. La différence dans ce cas est la textcolor des étiquettes.
public class ComputerTemplateSelector : DataTemplateSelector { public DataTemplate SelectedComputer { get; set; } public DataTemplate Computer { get; set; } protected override DataTemplate OnSelectTemplate(object item, BindableObject container) { return ((SQLite_Database.Computer)item).Selected == true ? SelectedComputer : Computer; } }