如何将所选行的datagrid单元格的值传递到Silverlight中ChildWindow中的texblock?
|
我从列表中生成了datagrid内容。我需要能够将数据网格中所选行的“名称”单元格的值传递给子窗口的texblock。通过单击上下文菜单项启动子窗口。场景是用户右键单击选定的行“名称”单元格,然后选择启动子窗口的上下文菜单项。使用数据网格中该单元格中的textblock文本值启动ChildWindow。任何想法都受到高度赞赏!先感谢您!
带有上下文菜单的Datagrid:
<sdk:DataGrid x:Name=\"dgPack\" ItemsSource=\"{Binding Source={StaticResource PackagesCollectionViewSource}}\">
<InputToolkit:ContextMenuService.ContextMenu>
<InputToolkit:ContextMenu x:Name=\"cmPackages_DataGrid\" DataContext=\"{Binding Source={StaticResource GlobalLabelsDataSource}}\">
<InputToolkit:MenuItem x:Name=\"item1\" Header=\"item1\"/>
<InputToolkit:MenuItem x:Name=\"GetChildWindow\" Header=\"GetChildWindow\" Click=\"GetChildWindow_Click\"/>
</InputToolkit:ContextMenu>
</InputToolkit:ContextMenuService.ContextMenu>
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn x:Name=\"DataGrid_Name\" Binding=\"{Binding Name}\" Header=\"Name\" />
<sdk:DataGridTextColumn x:Name=\"DataGrid_Version\" Binding=\"{Binding Version}\" Header=\"Version\" />
<sdk:DataGridTextColumn x:Name=\"DataGrid_Size\" Binding=\"{Binding Size}\" Header=\"Size\" />
</sdk:DataGrid.Columns>
后面代码中的方法来启动子窗口:
private void GetChildWindow_Click(object sender, System.Windows.RoutedEventArgs e)
{
var selectedItem = PackVM.SelectedPack;
if (selectedItem != null)
{
var bpw = new GetChildWindow1_ChildWindow(selectedItem.Id);
bpw.Show();
}
}
清单:
public List<Pack> GetCollection()
{
return new List<Pack>()
{
new Pack() { Name=\"item1\", Size=10, Version=\"1\"},
new Pack() { Name=\"item2\", Size=12, Version=\"5\", },
};
}
最后是子窗口:
<Grid x:Name=\"LayoutRoot\">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height=\"Auto\" />
</Grid.RowDefinitions
<Button x:Name=\"OKButton\" Content=\"OK\" Click=\"OKButton_Click\" Width=\"75\" Height=\"23\" Margin=\"0,0,79,0\" HorizontalAlignment=\"Right\" Grid.Row=\"1\" />
<Button x:Name=\"CancelButton\" Content=\"Cancel\" Click=\"CancelButton_Click\" Width=\"75\" Height=\"23\" HorizontalAlignment=\"Right\" Grid.Row=\"1\" />
<TextBlock x:Name=\"Message\" HorizontalAlignment=\"Left\" TextWrapping=\"Wrap\" Text=\"\" VerticalAlignment=\"Top\"/>
</Grid>
没有找到相关结果
已邀请:
1 个回复
香腔弥胯瓤
-现在,在从父窗口调用show方法之前,先调用此方法:
这应该工作。 无论如何,您应该看看MVVM来解决这类问题;-)