Est-il possible de faire une List<string> une ressource statique dans le code xaml?
Si je veux lier quelque chose comme une zone de liste modifiable dans le code-behind je n'ai aucun problème à tous. Quelque chose comme :
List<string> strings = new List<string>();
AddStringsFromDataSourceToList(strings);
comboBox1.ItemSource = strings;
Pour autant que je sache, il n'est pas de façon rapide et sale pour ce faire, dans le XAML. Pour l'ensemble de la louange wpf reçoit pour son super liaison de données simple, quelque chose d'aussi simple semble beaucoup plus facile de le faire en C#. Est-il un moyen plus facile de le faire que la création de DependencyProperty wrappers et de les ajouter en tant que ressources, sans beaucoup d'aide de intellisense ou tout ce qui va dans ObservableCollections? Je comprends que ce n'est pas impossible, mais quelque chose doit m'échapper si une telle tâche simple semble donc en profondeur...
EDIT: Pour clarifier, l'ajout de Listes dynamiques est le problème ici, pas de tableaux statiques. Il est super facile d'ajouter manuellement des éléments, comme beaucoup l'ont souligné.
Ce n'est pas quelque chose de trop fou...certainement pas "tout et n'importe quoi". Il s'agit tout simplement et la question de la conveinence de l'une des tâches les plus courantes dans la création d'applications.
Je sais qu'il n'est pas fou, mais une fois que vous commencez à avoir de la complaisance et de travailler le long des lignes de "je vais intégrer cette donnée dans l'INTERFACE utilisateur..." qui sait où il va finir? Et si nous parlons de "données" qui peut essentiellement être considérés comme faisant partie de l'INTERFACE utilisateur, comme une liste de déroulante des options qui sont communs et constante, alors il est généralement l'utilisation de conteneurs qui est abstrait et réutilisés. Je ne suis pas arriver à vous, la question, ou la méthode, tout en indiquant certaines choses, BTW.
OriginalL'auteur Morgan Herlocker | 2011-01-19
Vous devez vous connecter pour publier un commentaire.
Sûr qu'il y est:
Il y a d'autres syntaxes, selon vos objectifs, qui sont presque aussi simple en utilisant des ressources ou en ligne itemssources, ou des données groupées.. même des données xml. Ne pas jeter vos mains dans la frustration parce que la première chose que vous avez essayé n'était pas facile - wpf vaut la courbe d'apprentissage, à mon avis.
WPF obtient des éloges, car il rend la séparation des éléments visuels du comportement beaucoup plus facile que windows forms, et parce qu'il est la création de belles effets visuels beaucoup beaucoup plus facile, pas parce qu'il est plus facile de faire des exemples triviaux. Toutefois, dans ce cas il est plus facile de faire l'exemple trivial.
Avec votre modifier Où voulez-vous tirer? Vous n'avez pas à créer des propriétés de dépendance ou les collections observables par tous les moyens. Une simple liste à la propriété va faire (je préfère utiliser un objet collectionviewsource dans le code xaml dans ce cas). Aussi, n'oubliez pas que vous n'avez pas besoin à utiliser tous les XAML si vous la détestez. Mais si vous concevez pour WPF, au lieu de, en dépit de cela, vous trouverez un grand nombre de tâches (comme celui-ci) facile.
Prune je suppose que je ne comprends pas, vous voulez le code xaml de tenir une ressource statique avec pas de code derrière, mais vous voulez que les valeurs de dynamique? Où/quand les valeurs?
Merci, ce qui ne l'collectionviesource méthode? Si vous connaissez des liens qui démontrent un concis de l'utilisation en plus de MSDN qui serait tout à fait utile.
OriginalL'auteur Philip Rieck
<Window ... xmlns:sys="clr-namespace..." xmlns:local="clr-namespace:...">
et non sur le tableau des ressources. C'est très propre norme solide XAML.Juste un heads-up, dans votre xaml, vous avez <TexBlock>, mais il faut <TextBlock>. Je ne peux pas le modifier car il est à moins de 6 caractères.
Fixe. Merci.
OriginalL'auteur Nawaz
Vous êtes à la recherche de quelque chose comme ceci:
Si vous ne souhaitez définir certains éléments d'une liste, regardez la solution de Henk Holterman. Par ailleurs, vous pouvez déclarer le tableau aussi comme une ressource et pour d'autres types.
Mise à jour
Il semble que vous avez changé votre question. Cependant, je ne comprends pas maintenant ce que votre désir est. Si vous voulez lier une collection que vous avez dans votre code-behind, puis en faire une propriété publique qui renvoie cette collection, définissez le DataContext de l'objet qui expose cette propriété et de définir une Liaison en XAML:
Espère que j'ai bien compris votre question...
OriginalL'auteur HCL
Que vous pouvez faire:
Et il y a aussi la syntaxe pour déclarer (et, implicitement, de la création) des données, par exemple une section de la Ressource.
Peut-être vous pouvez montrer la plus complète scénario, avec les exigences et contraintes ?
Maintenant vous semblez vouloir mélanger impératif de C# dans le XAML déclaratif. Si vous venez d'activer la fonction dans une propriété que vous avez terminé.
OriginalL'auteur Henk Holterman