我想知道如何防止在DataGrid中显示详细信息行,当有人点击单元格内的超链接或按钮时。当你尝试点击超链接和细节显示而不是链接时,真的很烦人。防止单击超链接时显示详细信息
另一个问题是,我在一列中有一些操作按钮,所以当细节被折叠时,您必须先点击行来显示细节,然后点击例如编辑按钮。
样品:
MainWindow.xaml.cs
namespace WpfApplication1
{
public class Item
{
public string Column0 { get; set; }
public string Mail { get; set; }
}
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = this;
}
public ObservableCollection<Item> Items
{
get
{
ObservableCollection<Item> i = new ObservableCollection<Item>();
i.Add(new Item() { Column0 = "dsaads", Mail = "[email protected]" });
i.Add(new Item() { Column0 = "wdads", Mail = "[email protected]" });
return i;
}
}
public void HyperlinkClick(object sender, RoutedEventArgs e)
{
MessageBox.Show("Clicked");
}
}
}
MainWindow.xaml
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid RowDetailsVisibilityMode="VisibleWhenSelected" ItemsSource="{Binding Items}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Column0" Binding="{Binding Column0}" />
<DataGridHyperlinkColumn Header="Mail" Width="*" Binding="{Binding Mail}" >
<DataGridHyperlinkColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="Padding" Value="2,0,2,0" />
<EventSetter Event="Hyperlink.Click" Handler="HyperlinkClick" />
</Style>
</DataGridHyperlinkColumn.ElementStyle>
</DataGridHyperlinkColumn>
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<Grid Height="100">
</Grid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
</Grid>
</Window>
要看到问题:选择第一行,然后试着点击超链接在第二行。
如果你想更好的帮助,速度更快;总是提供代码:) – christopher 2013-02-26 13:13:24
由于蕴含和“datagrid”是多余的,因为它已经在标签之中,所以没有必要在问题标题中既不添加“如何”或“数据网格”,因为“如何”是冗余的。 – Default 2013-02-26 13:14:11
朋友,你很难得到这个问题的答案。提供一些代码和一些你已经尝试过的东西。 – 2013-02-26 13:15:41