Disons que nous avons une vue de grille qui est liée à la source de données MyInformation. L'une des colonnes est une case à cocher. Je veux lier quelque chose avec ça.Ma case à cocher ne lie pas le membre
ItemsSource="{Binding MyInformation}"
Dans le ViewModel.
public ObservableCollection<Container> MyInformation
{
get
{
if (this.myInformation == null)
{
this.myInformation = new ObservableCollection<Container>();
}
return this.myInformation;
}
set
{
if (this.myInformation != value)
{
this.myInformation = value;
this.OnPropertyChanged("MyInformation");
}
}
}
Le conteneur de classe a un membre "GoodValue".
public class Container
{
public bool GoodValue {get;set;}
//
}
J'ai la case à cocher lier avec le membre.
<DataTemplate>
<CheckBox HorizontalAlignment="Center" IsChecked="{Binding GoodValue, Converter={StaticResource ShortToBooleanConverter}}" Click="CheckBox_Checked"></CheckBox>
</DataTemplate>
Je n'ai pas la propriété GoodValue
créée en ViewModel que je pense GoodValue
est membre du conteneur. Le ObservableCollection l'inclut automatiquement.
Le problème est chaque fois que je lis les données de la base de données. La case à cocher n'est pas cochée. Donc je doute de mon code. Merci pour l'indice.
Trouvez simplement l'erreur. Mon ShortToBooleanConverter est faux. Quand vrai c'est 1, faux est 0. Mais dans mon cas, la valeur dans la table n'est pas 1/0. Je dois réécrire le convertisseur. – Bigeyes