2
當您點擊一行時,通常會顯示行詳細信息。我想禁用這個,這樣點擊一個DataGrid行就可以簡單地選擇它,但不顯示行的詳細信息。我想要在用戶單擊行標題時顯示行詳細信息。我將如何做到這一點?通過單擊行標題顯示DataGrid行詳細信息?
當您點擊一行時,通常會顯示行詳細信息。我想禁用這個,這樣點擊一個DataGrid行就可以簡單地選擇它,但不顯示行的詳細信息。我想要在用戶單擊行標題時顯示行詳細信息。我將如何做到這一點?通過單擊行標題顯示DataGrid行詳細信息?
要停止某人獲得當行被點擊一個說明會將此屬性添加到網格:
<DataGrid Name="dgPrimary" RowDetailsVisibilityMode="Collapsed">
然後一個補充型ChangePropertyAction的兩種行爲,使用Expression Blend的是最簡單的一個。
這是當我將鼠標移動到我的測試項目的datagrid dgPrimary上。瞭解所有行描述如何打開。
下面是從混合上漲到數據網格
<DataGrid x:Name="dgPrimary" RowDetailsVisibilityMode="Collapsed">
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Margin="20,0,0,0" Orientation="Horizontal">
<TextBlock FontWeight="Bold" Text="{Binding New}" />
</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Original}"
Header="File Name Before"
IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding New}"
Header="File Name After"
IsReadOnly="True" />
</DataGrid.Columns>
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseEnter">
<ei:ChangePropertyAction PropertyName="RowDetailsVisibilityMode">
<ei:ChangePropertyAction.Value>
<DataGridRowDetailsVisibilityMode>Visible</DataGridRowDetailsVisibilityMode>
</ei:ChangePropertyAction.Value>
</ei:ChangePropertyAction>
</i:EventTrigger>
<i:EventTrigger EventName="MouseLeave">
<ei:ChangePropertyAction x:Name="cpaLeave" PropertyName="RowDetailsVisibilityMode"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGrid>
而後面的代碼來加載數據網格
dgPrimary.ItemsSource = Directory.GetFiles(@"C:\")
.Select((nm, index) => new
{
Original = System.IO.Path.GetFileName(nm),
New = string.Format("{0}_{1}{2}", System.IO.Path.GetFileNameWithoutExtension(nm), index, System.IO.Path.GetExtension(nm))
});
代碼