Bonjour,
Je me remets à .Net après de nombreuses années, et les choses ont beaucoup changées. Une de ces nouveautés est le XAML pour la mise en forme.
J’essaie de faire un truc très simple, et je ne comprend pas l'erreur donnée.
Donc, le but : passer des "UserControl" représentant des objets simples d'une GridViewà une autre.
Mais avant d'en arriver au Drag&Drop, je suis gêné par le DataBinding.
Voici la classe servant à stocker les données :
Et la partie C# du UserControl
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class ProductEntity { public String price { get; set; } public String label { get; set; } }
Dans ma page, côté C#, je charge les données ainsi :
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 public sealed partial class ProductTile : UserControl { public ProductTile() { this.InitializeComponent(); this.Width = 600; this.Height = 280; } public String Price { get { return this.txtprice.Text; } set { this.txtprice.Text = value; } } public String Label { get { return this.txtlabel.Text; } set { this.txtlabel.Text = value; } }
Côté XAML, pour les GridView, je défini le DataTemplate suivant :
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
17 ObservableCollection<ProductEntity> source; public MainPage() { this.InitializeComponent(); source = new ObservableCollection<ProductEntity>(); source.Add(newMockupItem()); source.Add(newMockupItem()); source.Add(newMockupItem()); source.Add(newMockupItem()); source.Add(newMockupItem()); source.Add(newMockupItem()); this.landing.ItemsSource = source; }
Mais l'éditeur XAML m'indique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <GridView Name="landing" ... > <DataTemplate> <local:ProductTile Price="{Binding price}" Label="{Binding label}" /> </DataTemplate> </GridView>
Balisage non valide
Avec en Liste d'erreurs :
Le membre "Price" n'est pas reconnu ou n'est pas accessible.
Le membre "Label" n'est pas reconnu ou n'est pas accessible.
Dans mon esprit, {Binding price} envoyait ProductEntity.price dans le getter de ProductTile.Price (qui est bien public).
Mais à priori il n'est pas d'accord ^^
Ou me trompes-je ? Que puis-je améliorer ?
Merci,
David
Partager