Comment créer une collection afficher la source dans le code derrière pour application wpf
J'ai code suivant
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var entities = new DemoEntities();
var depts = entities.Depts.ToList(); //entity framwork dept table
CollectionViewSource cvs = (CollectionViewSource)CollectionViewSource.GetDefaultView(depts);
}
}
Mon intention est de lier cette collection de windows suivants de la ressource en XAML
<Window.Resources>
<CollectionViewSource x:Key="Departments"/>
</Window.Resources>
À l'aide de
CollectionViewSource collectionViewSource = this.FindResource("Departments") as CollectionViewSource;
Cependant lors de l'exécution de ligne de code suivante
Objet collectionviewsource cvs = (objet collectionviewsource)objet collectionviewsource.GetDefaultView(depts);
il est en train de lancer une exception et l'exception de l'exception interne est la suivante
{"Unable to cast object of type 'System.Windows.Data.ListCollectionView' to type 'System.Windows.Data.CollectionViewSource'."}
Peut-on m'aider sur ce point, en fournissant la façon de créer des objet collectionviewsource à l'aide de code derrière?
OriginalL'auteur Elangesh | 2012-01-12
Vous devez vous connecter pour publier un commentaire.
CollectionViewSource.GetDefaultView(depts)
retourne unICollectionView
.CollectionViewSource
est principalement un moyen de déterminer quel type deICollectionView
à utiliser en fonction de la collection fournie.Si vraiment vous ne voulez créer un
CollectionViewSource
cependant, vous pouvez probablement le faire comme ceci:Je crois par contre que ce que vous essayez d'atteindre pourrait être fait dans une meilleure façon. Par exemple:
OriginalL'auteur Lukazoid
L'Objet Collectionviewsource.GetDefaultView méthode retourne un objet ICollectionView
Mais si vous êtes une liaison avec une collection qui hérite de IList (ce qu'il fait dans votre cas), il peut aussi être lancé à un plus puissant type...
Qui est ce que le compilateur veut faire, mais ne le peuvent pas. D'où l'erreur. Modifiez donc votre " cv " pour être du type approprié...
ICollectionView ou ListCollectionView... selon ce que vous voulez faire avec le résultat...
REMARQUE: Bea Stolnitz séminal de l'entrée de blog sur la liaison à un CollectionView est à son ancien blog
ListCollectionView
est créé comment réaffecter les ressources de windows, car le type de la ressource estCollectionViewSource
OriginalL'auteur Gayot Fow