J'ai deux Chaque élément affiché à gauche sera probablement plus petit que le même article sur le à droite. Cela provoque un problème car les lignes ne s'aligneront pas, j'ai donc besoin de l'élément à gauche pour se lier à l'élément à droite. P> itemsControl code> S qui apparaissent côte à côte. Le
itemsControl code> s lié à la même
itemsSource code>, mais ils affichent les données différemment.
ItemsControl ItemsControl
|Item 1 |Item 1
|Item 2 |Item 2
|Item 3 |
|Item 4 |Item 3
4 Réponses :
Depuis le code> itemsource code> est identique sur les deux, vous pouvez utiliser un seul Une autre façon d'aller avec ceci est, ajoutant une propriété hauteur dans la vue de la vue ( bien sûr, pas très bonne conception depuis l'ajout de la dépendance de la vue à la VM em>). Twoway lie la hauteur à l'actualité de l'élément d'itemStrol de gaucheContainerStyle. Et sur la droiteControl de droite se lie que la propriété de hauteur à la hauteur des articles contenant des objets {d'une manière}. Donc, les deux seront synchronisés. p>
Une autre idée basée sur votre mise à jour "besoin du défilement sur le côté droit":
Utilisez une seule liste de lecture et avez deux colonnes dedans, et de ces deux gridviewcolumn.Celltemplate ont vos deux types de données. Cette idée a toujours besoin de colonne de congélation sur la première colonne. Mais cela peut être plus délicat. P>
Quoi qu'il en soit, j'irais avec la première approche ici. P> itemsControl code> et une ligne entière représentée comme deux sections (deux colonnes d'une grille) à l'intérieur de ce seul < Code> DataTemplate code>, les hauteurs seront alignées automatiquement. Vous pouvez toujours le styler à ressembler à une partie de deux itemstrol
différents) code> mais techniquement un. P>
Malheureusement, la grille de deux colonnes ne fonctionnera pas à cause du scénario de défilement que j'ai (voir ma question mise à jour). La hauteur réelle dans le point de vue pourrait fonctionner, mais je ne suis pas sûr que cela devrait être quelque chose qui va dans la vue, car elle est spécifique.
Malheureusement, je n'ai pas été capable d'effectuer une liaison à l'actualité, alors je ne pouvais donc pas terminer l'option un ou deux. Je vais comprendre quelque chose.
Suivi sur JOBI JOY'S EM> Réponse Vous ne pouvez pas faire de directe Synkroniser deux ScrollViewers strong> xaml strong> p> code derrière les gestionnaires d'événements strong> p> réelSizeBehavior strong> p> Owwaytosource CODE> BLANDING dans XAML pour la propriété de dépendance réalisée réelleHeight, mais il existe de nombreuses solutions de contournement. La réponse par kent boogaart em> dans Cette question < / a> est mon préféré. Ce qui est, c'est qu'il utilise un comportement attaché qui écoute l'événement code> sizechanged code> de tout
cadre code> et met à jour deux propriétés attachées, largeur et hauteur, en conséquence. P> < p> avec un
textblock code> par exemple,
actuelHeight code> peut être utilisé pour appuyer sur une propriété de hauteur de la vue de la vue comme p>
Vous pouvez utiliser un dépendancePropertyDescriptor code> pour écouter les modifications de la propriété
verticaloffseproperty CODE> ou vous abonner à l'événement code> ScrollChanged CODE> Evénement et appelez
ScrollToverticalOffset code >. Exemple P>
Cela a fonctionné pour moi. Cependant, j'ai mes réservations sur le point de savoir si le stockage des données spécifiques dans le modèle de vue confirme MVVM.
Jetez un coup d'œil à mon article: http://www.codeproject.com/kb /Wpf/bindinghub.aspx
C'est ainsi que vous pouvez lier à la lecture de propriétés de dépendance en lecture seule à l'aide de BLANDINGHUB: P>
<bindings:BindingHub Visibility="Hidden" Socket1="{Binding ActualWidth, ElementName=Item, Mode=OneWay}" Socket2="{Binding ItemWidth, Mode=OneWayToSource}" Connect="(1 in, 2 out)"/>
Je devais résoudre ce problème exactement. J'ai utilisé la solution de liaison en lecture seule trouvée ici: https://meleak.wordpress.com / 2011/08/28 / prewaytosource-Binding-for-Readonly-dépendance-propriété / p>
Utilisation de cela, j'ai été capable de lier la lecture en lecture seule de chaque
listViewItem code> dans un
listview code> à une propriété de mon article Voir le modèle appelé
ListViewItemHeight code>. Ensuite, dans le second
listview code>, j'ai lié la hauteur de chaque élément à
listViewItemheight code>. P>.