J'ai un DataGrid avec la mise en œuvre de maître détail comme suit:passage de données à la fenêtre des enfants dans Silverlight 4 en utilisant MVVM
<data:DataGrid x:Name="dgData" Width="600" ItemsSource="{Binding Path=ItemCollection}"
HorizontalScrollBarVisibility="Hidden" CanUserSortColumns="False" RowDetailsVisibilityChanged="dgData_RowDetailsVisibilityChanged">
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="Item" Width="*" Binding="{Binding Item,Mode=TwoWay}"/>
<data:DataGridTextColumn Header="Company" Width="*" Binding="{Binding Company,Mode=TwoWay}"/>
</data:DataGrid.Columns>
<data:DataGrid.RowDetailsTemplate>
<DataTemplate>
<data:DataGrid x:Name="dgrdRowDetail" Width="400" AutoGenerateColumns="False" HorizontalAlignment="Center"
HorizontalScrollBarVisibility="Hidden" Grid.Row="1">
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="Date" Width="*" Binding="{Binding Date,Mode=TwoWay}"/>
<data:DataGridTextColumn Header="Price" Width="*" Binding="{Binding Price, Mode=TwoWay}"/>
<data:DataGridTemplateColumn>
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="Show More Details" Click="buttonShowDetail_Click"></Button>
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
</data:DataGrid.Columns>
</data:DataGrid>
</DataTemplate>
</data:DataGrid.RowDetailsTemplate>
</data:DataGrid>
Je veux ouvrir une fenêtre enfant en cliquant sur le bouton qui affiche plus de détails sur le produit. J'utilise le modèle MVVM.
Mon modèle contient une méthode qui prend le nom de l'élément en entrée et retransmet les données de détails.
Mon problème est comment dois-je passer l'élément à ViewModel qui obtiendra les données de détails du modèle? et où shoukd j'ouvre la nouvelle fenêtre enfant? Dans View ou ViewModel?
S'il vous plaît help.Thanks.
Avez-vous vraiment besoin d'utiliser Guid comme Id d'une entité? Soyez prudent en utilisant Guid lorsque vous avez des tonnes d'entités, cela consomme beaucoup d'espace dans votre base de données. Pour 99% des cas, int ou long est très bien. – andrecarlucci
L'exemple ci-dessus était un extrait abrégé de code provenant de quelque chose sur lequel je travaillais sur un site client. Je n'ai pas eu le choix quant à l'utilisation de Guids pour les identifiants. Cela faisait partie de la conception de la base de données quand je suis arrivé là. Je suis d'accord que int ou long serait mieux, mais en raison des contraintes du système, nous devions utiliser Guids. – Chazmanian