Définit le code xaml ItemsSource = "{Binding}" avec le code derrière
J'ai la propriété suivante Temp2
: (mon UserControl implémente INotifyPropertyChanged)
ObservableCollection<Person> _Temp2;
public ObservableCollection<Person> Temp2
{
get
{
return _Temp2;
}
set
{
_Temp2 = value;
OnPropertyChanged("Temp2");
}
}
public event PropertyChangedEventHandler PropertyChanged = delegate { };
private void OnPropertyChanged(string propertyName)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
J'ai besoin de créer une listview dynamiquement. J'ai le contrôle listview ci-dessous dans le code XAML:
<ListView
Name="listView1"
DataContext="{Binding Temp2}"
ItemsSource="{Binding}"
IsSynchronizedWithCurrentItem="True">
<ListView.View>
.... etc
Maintenant, je suis en train de créer le même listview avec c#:
ListView listView1 = new ListView();
listView1.DataContext = Temp2;
listView1.ItemsSource = Temp2; //new Binding(); //????? how do I have to implement this line
listView1.IsSynchronizedWithCurrentItem = true;
//.. etc
quand je remplir la liste avec C# la liste ne sont pas remplis. ce que je fais mal?
source d'informationauteur Tono Nam
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour créer un
Binding
objet.L'argument passé au constructeur est le
Path
que vous avez l'habitude de partir de XAML liaisons.Vous pouvez laisser de côté la
Path
etSource
si vous définissez laDataContext
àTemp2
comme vous le faites ci-dessus, mais personnellement, je pense qu'il est préférable de se lier à un ViewModel (ou autre source de données) et l'utilisation d'unPath
que de les lier directement à un membre de la classe.Vous devez définir certaines propriétés de la Liaison de l'instance. Dans votre cas, il sera probablement quelque chose comme...