Silverlight : Dataform dans une childwindow
-
mercredi 28 novembre 2012 16:51
Bonjour,
Je suis en train de faire un petit site intranet silverlight RIA Service.
Le but est d'afficher une grille avec une liste de libellé et un bouton "Detail".
Un click sur le bouton détail affiche le contenu de l'enregistrement associé.
J'arrive à afficher le contenu de ma table dans la fenêtre maitre mais le contenu de la ChildWindow reste vide alors que dans le load (en debug) je vois que l'enregistrement est bien en cache de mon dataform.
Voici le code de ma feneêtre fille :
<controls:ChildWindow x:Class="Lexique.ChildWindow1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" Width="700" Height="800" Title="Détail" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" xmlns:dataForm="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm.Toolkit" > <Grid x:Name="LayoutRoot" Margin="2" > <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Button x:Name="OKButton" Content="OK" Width="75" Height="23" HorizontalAlignment="Right" Margin="0,12,79,0" Grid.Row="1" /> <dataForm:DataForm x:Name="DF" CurrentItem="{Binding SelectedLexique}" AutoGenerateFields="True" AutoEdit="True" AutoCommit="False" Margin="0,12,0,0" CommandButtonsVisibility="None"> <StackPanel dataForm:DataField.IsFieldGroup="True"> <sdk:Label Content="Nom:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" /> <dataForm:DataField> <TextBox Grid.Column="1" Grid.Row="0" Height="23" HorizontalAlignment="Left" Margin="3" Name="NomTextBox" Text="{Binding Nom, Mode=TwoWay}" VerticalAlignment="Center" Width="120" /> </dataForm:DataField> <sdk:Label Content="Description:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" /> <dataForm:DataField> <TextBox Grid.Column="1" Grid.Row="1" Height="Auto" AcceptsReturn="True" Margin="3,3,3,3" Name="DescriptionTextBox" Text="{Binding Description, Mode=TwoWay}" VerticalAlignment="Center" VerticalScrollBarVisibility="Visible" Width="500" TextWrapping="Wrap" /> </dataForm:DataField> <sdk:Label Content="Description ERP:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" /> <dataForm:DataField> <TextBox Grid.Column="1" Grid.Row="1" Height="Auto" AcceptsReturn="True" Margin="3,3,3,3" Name="DescriptionERPTextBox" Text="{Binding DescriptionERP, Mode=TwoWay}" VerticalAlignment="Center" VerticalScrollBarVisibility="Visible" Width="500" TextWrapping="Wrap" /> </dataForm:DataField> </StackPanel> </dataForm:DataForm> </Grid> </controls:ChildWindow>FB
Toutes les réponses
-
jeudi 29 novembre 2012 15:29
bon pas d'aide...
Y aurait il un tuto qui expliquerait l'utilisation du Dataform?
Mon besoin serait de synchroniser une datagrid et une childform avec le détail de l'enregistrement
Merci
FB
-
vendredi 30 novembre 2012 07:19ce forum est il mort?
FB
A priori oui...- Modifié FrançoisBOSSANT lundi 3 décembre 2012 06:58
-
mardi 4 décembre 2012 10:15Propriétaire
Bonjour
Vous avez quelques exemples sur l’usage de DataForm :
http://msdn.microsoft.com/en-us/magazine/ee335695.aspx
Pour la traduction vous pouvez utiliser : http://www.bing.com/translator/
Cordialement,
-
mardi 4 décembre 2012 10:21
Bonjour,
Vos exemples ne montrent pas comment lier l'enregistrement d'un Datagrid avec une dataform situé dans une childwindow
Cordialement
FB
- Modifié FrançoisBOSSANT mardi 4 décembre 2012 10:24
-
mardi 4 décembre 2012 10:31Propriétaire
Ici vous avez DataForm with ChildWindow
- Marqué comme réponse FrançoisBOSSANT mardi 4 décembre 2012 11:42
-
mardi 4 décembre 2012 11:38
J'ai trouvé mon erreur...
Dans la main windows, ma datagrid etait alimentée via son itemssource avec un DomaineDataSource.
JE pensais qu'il suffisait de transmettre au DataForm (avec sa proprété CurrentItem) l'enregistrement en cours du DataGrid (propriété SelectedItem).
Mais dans ce cas (si j'ai bien compris) le dataform reste vide.
Il aurait fallu que le Dataform ait la meme source de données (ce qui me paraissait stupid vu que je n'avais besoin que d'un enregistrement).
J'ain donc résolu le problème en transmettant le SelectedItem de la DataGrid à l'ItemsSource du DataForm.
Merci
FB

