我有主具體實現一個DataGrid如下:將數據傳遞給子窗口Silverlight 4中使用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>
我想在點擊其中顯示有關該產品的更多詳細信息按鈕打開一個子窗口。
我正在使用MVVM模式。我的模型包含一個方法,它將項目名稱作爲輸入並退回細節數據。
我的問題是,我應該如何將Item傳遞給ViewModel,它將從Model獲取Details數據?在哪裏我打開新的兒童窗口?在View或ViewModel中?
請幫忙。謝謝。
你真的需要使用Guid作爲實體的Id嗎?當你有很多實體時要小心使用Guid,它會消耗數據庫中的大量空間。對於99%的情況,int或long很好。 – andrecarlucci 2010-11-29 20:50:01
上面的示例是從我在客戶端網站上處理的內容中提取的代碼的縮寫片段。我沒有選擇使用Guids作爲ID。那是我到達那裏時數據庫設計的一部分。我同意int或long會更好,但由於系統的限制,我們不得不使用Guids。 – Chazmanian 2011-01-03 15:04:36