我想知道如何防止在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