Bonjour à tous,
Je souhaiterai créer des vues personnalisée pour un listview. J'ai trouvé cet example qui marche bien http://blogs.msdn.com/atc_avalon_tea...28/585844.aspx
mais je voudrai faire la même chose, sans avoir à créer un projet séparer où définir mes vues. Je voudrai tout définir dans mon projet principal.
J'ai déjà essayé:
- d'ajouter un nouveau ResourceDictionary à mon projet principal, avec à l'intérieur les styles utilisés pour les vues:
Et j'essaye ensuite d'utiliser ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:l="clr-namespace:Avalon.Demo" > <Style x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type l:ImageView},ResourceId=ImageView}" TargetType="{x:Type ListView}" BasedOn="{StaticResource {x:Type ListBox}}"> (...) </Style> <Style x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type l:ImageView},ResourceId=ImageViewItem}" TargetType='{x:Type ListViewItem}' BasedOn='{StaticResource {x:Type ListBoxItem}}'> (...) </Style> </ResourceDictionary>
Mais ça ne marche pas (mon listview reste invisible). Je pense que quelque chose cloche à cause de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <Page xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' xmlns:l="clr-namespace:Avalon.Demo"> <ListView> <ListView.View> <l:ImageView /> </ListView.View> <ListView.ItemsSource> <l:FileCollection /> </ListView.ItemsSource> </ListView> </Page>
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <Style x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type l:ImageView},ResourceId=ImageView}" TargetType="{x:Type ListView}" BasedOn="{StaticResource {x:Type ListBox}}">
puisque justement ici le code est destiné à fonctionner avec une assembly extérieure, mais je ne sais pas comment changer ça...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 protected override object DefaultStyleKey { get { return new ComponentResourceKey(GetType(), "ImageView"); } }
Merci d'avance pour votre aide,
Jérémy
Partager