J'ai une propriété qui est un type de données de base de données ( Une façon dont j'ai pensé à faire de la part de chaque contrôle de mon former et définir leur L'autre façon, je pensais utiliser un si quelqu'un peut remplir mon "???" strong> ou offre une meilleure solution s'il vous plaît faire. p> p> char code>, datetime code>, int code>, float code > etc ...) et je veux changer le contrôle utilisé pour entrer une valeur du type sélectionné. Donc, pour les valeurs de texte, je veux un textbox pour pour les valeurs de date, je veux un datePicker code>. visibilité code> à l'aide d'un IVALUECONVERTER code> de code>. Je sais que cela fonctionnera, mais cela créerait beaucoup de code et ne se sent pas très gentil. P> contentpresenter Code> et définir son contenu. avec un style code> et DataTriggers code> mais je ne peux pas le faire fonctionner. p>
3 Réponses :
Je regarderais dans les datatempates. Par exemple:
Je ne suis pas sûr que cela fonctionnerait pour moi car je n'utilise pas de "type" réel pour faire mon choix de contrôle, j'utilise une valeur d'énumération exposée comme une propriété sur ma viewModel.
Vous pouvez faire une combinaison de style avec des setters et des datatempates. Vous avez essentiellement le début de votre code dans votre code, bien que je ne pense pas Créer un style comme celui-ci: p> puis utilisez le style dans le contentpresenter code> est le bon contrôle au style, car il n'a pas de modèle. contentControl code>: p>
Je ne suis pas sûr de pouvoir partager mon code car il y a beaucoup de dépendances. En fait, mon problème réel est un peu plus compliqué que ce que j'ai laissé. Je suis à peu près sûr que votre solution fonctionnera pour moi, je viens de recevoir un problème où j'essaie de définir le contenu du contenuControl sur {Binding} plutôt que {myvalue de la liaison}, ce qui signifie que WPF charge la vue de ma viewModel dans le contrôle de contenu et continue de continuer à aller ...
Ah, je vois. Avez-vous essayé {chemin de liaison =.}?
Trié! Je devais régler le DateType de la
tandis que la solution code> style code> pourrait fonctionner, la manière appropriée pour mettre en œuvre le comportement de contenu dynamique serait d'utiliser des datatempates comme Section suggérée. Cependant, vous utiliseriez une énumération pour déterminer quel type de données à utiliser, ce qui signifie essentiellement que vous souhaitez mapper un seul type sur plusieurs dataMates de données. Ce problème est résolu par la classe "En règle générale, vous créez un type de dataMPATEST lorsque vous avez plusieurs types de données pour le même type d'objets et que vous souhaitez fournir votre propre logique pour choisir un fichier de données à appliquer en fonction des propriétés de chaque objet de données." P >
blockQquote> Votre contenu dynamique doit être hébergé par un la mise en œuvre de puis comme vous l'attendez, voici les données de données à choisir de: p> avec ceci, Le CODE> DATATEMPATE > sera choisi sur la base de la propriété dataMplateselector code>, la description suivante est directement de MSDN:
contentControl code> comme ceci: p> myTemplateselector code>: p> DataType CODE> de votre modèle de vue. Ce qui est à mon avis, beaucoup plus propre que d'utiliser la visibilité code> ou styles. p> p>