cs_Cecile5
Messages postés1Date d'inscriptionmercredi 17 mars 2010StatutMembreDernière intervention17 mars 2010
-
17 mars 2010 à 17:00
yohan49
Messages postés380Date d'inscriptionsamedi 22 janvier 2005StatutMembreDernière intervention13 août 2011
-
21 mars 2010 à 05:38
Bonjour à tous,
J'ai un petit soucis avec des Border qui ne se comportent pas comme je veux.
Voici ce qu'il faut faire pour reproduire mon problème :
1) Créer une classe Person :
public class Person
{
public string Nom { get; set; }
public string Prenom { get; set; }
public int Age { get; set; }
public bool Present { get; set; }
}
2) Créer une classe vue-modèle nommée ViewModel :
public class ViewModel
{
public ObservableCollection Persons { get; set; }
public ViewModel()
{
Persons = new ObservableCollection();
Persons.Add(new Person { Age 18, Nom "Nom 1", Prenom = "Prenom 1", Present = true });
Persons.Add(new Person { Age 45, Nom "Nom 2", Prenom = "Prenom 2", Present = false });
Persons.Add(new Person { Age 99, Nom "Nom 3", Prenom = "Prenom 3", Present = true });
Persons.Add(new Person { Age 45, Nom "Nom 2", Prenom = "Prenom 2", Present = false });
Persons.Add(new Person { Age 99, Nom "Nom 3", Prenom = "Prenom 3", Present = true });
Persons.Add(new Person { Age 45, Nom "Nom 2", Prenom = "Prenom 2", Present = false });
Persons.Add(new Person { Age 99, Nom "Nom 3", Prenom = "Prenom 3", Present = true });
Persons.Add(new Person { Age 45, Nom "Nom 2", Prenom = "Prenom 2", Present = false });
Persons.Add(new Person { Age 99, Nom "Nom 3", Prenom = "Prenom 3", Present = true });
Persons.Add(new Person { Age 45, Nom "Nom 2", Prenom = "Prenom 2", Present = false });
Persons.Add(new Person { Age 99, Nom "Nom 3", Prenom = "Prenom 3", Present = true });
}
}
3) Créer un UserControl pour la vue,
avec dans le xaml :
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace WpfApplication1
{
public partial class View
{
public View()
{
InitializeComponent();
DataContext = new ViewModel();
}
private void TextBoxGotFocus(object sender, RoutedEventArgs e)
{
var textbox = (TextBox)sender;
textbox.Background = Brushes.White;
var border = ((Border)textbox.Parent);
border.Background = Brushes.White;
}
private void TextBoxLostFocus(object sender, RoutedEventArgs e)
{
var textbox = (TextBox)sender;
textbox.Background = Brushes.Beige;
var border = ((Border)textbox.Parent);
border.Background = Brushes.Beige;
}
private void CheckBoxGotFocus(object sender, RoutedEventArgs e)
{
var border = ((Border)((CheckBox)sender).Parent);
border.Background = Brushes.White;
}
private void CheckBoxLostFocus(object sender, RoutedEventArgs e)
{
var border = ((Border)((CheckBox)sender).Parent);
border.Background = Brushes.Beige;
}
}
}
Les problèmes sont les suivants :
a) à l'exécution, certaines lignes du tableau sont floues.
b) quand on clique sur une cellule, sa bordure s'amenuise.
Quelqu'un a-t-il une idée de pourquoi ça fait cela? Et surtout comment y remédier?