我从我的WPF应用程序中将SQL数据库中的数据导入到我的DATAGRID中。我希望能够点击一个名为的单元格:'离开审计'然后从那里被重定向到另一个页面,其中包含有关剩余审计数量的所有信息。
如何创建点击事件以将我带到另一个页面?
P.S。我是新手。
修改:http://i.stack.imgur.com/LGnHA.png
修改:http://i.stack.imgur.com/tU0bA.png - 想要点击最后一列的单元格。
答案 0 :(得分:0)
希望这项工作:
<DataGridHyperlinkColumn Binding="{Binding Link}">
<DataGridHyperlinkColumn.ElementStyle>
<Style>
<EventSetter Event="Hyperlink.Click" Handler="DG_Hyperlink_Click"/>
</Style>
</DataGridHyperlinkColumn.ElementStyle>
</DataGridHyperlinkColumn>
private void DG_Hyperlink_Click(object sender, RoutedEventArgs e)
{
Hyperlink link = (Hyperlink)e.OriginalSource;
Process.Start(link.NavigateUri.AbsoluteUri);
}
如果URI指向一个网站,它将使用默认的Web浏览器打开,如果它是一个文件夹,它将在资源管理器中打开,如果它是一个文件,它将使用与之关联的默认应用程序打开。 / p>
要将其用于自动生成的列,您的属性必须是Uri类型,因此会生成DataGridHyperlinkColumn。然后,您可以通过将样式放在DataGrid.Resources中来挂接事件:
<DataGrid.Resources>
<Style TargetType="Hyperlink">
<EventSetter Event="Click" Handler="DG_Hyperlink_Click"/>
</Style>
</DataGrid.Resources>
答案 1 :(得分:0)
试试这个..
在CellStyle上添加一个EventSetter:
<DataGrid.CellStyle>
<Style>
<EventSetter Event="DataGridCell.MouseLeftButtonDown"
Handler="CellClicked" />
</Style>
</DataGrid.CellStyle>
在Code Behind中添加处理程序:
private void CellClicked(object sender, MouseButtonEventArgs e)
{
String cellContent = ((TextBlock)sender).Text;
xamlAllocateAudit window = new xamlAllocateAudit
{
DataContext = cellContent
}
window.Show();
}
在我的结尾工作..首先点击选择单元格,然后第二次单击fires处理程序,这将打开新窗口。
如果你想要更新同一个窗口,那么保留一个窗口的引用,如果存在,则更新它的datacontext。
在xamlAllocateAudit的ohter侧,为事件“DataContextChanged”创建处理程序:
<Window x:Class="WpfApplication3.xamlAllocateAudit"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="DetailsWindow" Height="300" Width="300"
DataContextChanged="Window_DataContextChanged">
<!-- Some graphics -->
</Window>
在CodeBehind中:
private void Window_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
{
var newDataContext = e.NewValue;
//do stuff with DataContext
}
干杯!!