0
Demander de l'aide. Est-il possible de modifier ContentBorder: BorderBrush de Listviewitem par le ViewModel {Binding}? Something like thisPersonnalisation de UWP ListViewItem par ViewModel
Demander de l'aide. Est-il possible de modifier ContentBorder: BorderBrush de Listviewitem par le ViewModel {Binding}? Something like thisPersonnalisation de UWP ListViewItem par ViewModel
MISE À JOUR
Vous pouvez créer un ItemContainerStyleSelector
, où vous pouvez appliquer un style personnalisé basé sur l'élément en cours dans la liste.
public class CustomItemContainerStyleSelector : StyleSelector
{
public Style MyStyle1 { get; set; }
public Style MyStyle2 { get; set; }
protected override Style SelectStyleCore(object item, DependencyObject container)
{
var obj = (MyObject)item;
if (/* Some kind of condition based on the bound object */)
{
return MyStyle1;
}
else
{
return MyStyle2;
}
}
}
Vous pouvez utiliser ce sélecteur de style comme ceci:
<ListView ItemsSource="{Binding SomeList}">
<ListView.ItemContainerStyleSelector>
<local:CustomItemContainerStyleSelector>
<local:CustomItemContainerStyleSelector.MyStyle1>
<Style TargetType="ListViewItem">
<Setter Property="BorderThickness" Value="5,0,0,0"/>
<Setter Property="BorderBrush" Value="Red"/>
</Style>
</local:CustomItemContainerStyleSelector.MyStyle1>
<local:CustomItemContainerStyleSelector.MyStyle2>
<Style TargetType="ListViewItem">
<Setter Property="BorderThickness" Value="5,0,0,0"/>
<Setter Property="BorderBrush" Value="Yellow"/>
</Style>
</local:CustomItemContainerStyleSelector.MyStyle2>
</local:CustomItemContainerStyleSelector>
</ListView.ItemContainerStyleSelector>
</ListView>
Eh bien, quand u = activer SelectionMode multiples, tout droit en mouvement ListViewItem montrer cases à cocher. J'ai besoin de coller cette bordure vers la gauche, de sorte que la case à cocher apparaîtra sur le côté droit de cette bordure comme ceci http://joxi.ru/v294aELS3RaaMm – Exodus009
Vous avez raison, j'ai mis à jour ma réponse. –