标签: rowdetailstemplate

为什么Width ="*"不适用于位于RowDetailsTemplate中的DataGrid中的列

如果我使用"*"设置DataGrid(位于RowDetailesTemplate)列的宽度 - 列缩放不起作用

<DataGrid>
...
<DataGrid.RowDetailsTemplate>
   <DataTemplate>
      <DataGrid Margin="10" Height="100">
         <DataGrid.Columns>
            <DataGridTextColumn Header="header A" Width="3*" />
            <DataGridTextColumn Header="header B" Width="2*" />
            <DataGridTextColumn Header="header C" Width="*" />
         </DataGrid.Columns>
      </DataGrid>
    </DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是如果我用Grid替换DataGrid并使用"*"scailing works设置它的列宽

<Grid Margin="5" Height="100">
   <Grid.ColumnDefinitions>
      <ColumnDefinition Width="3*"></ColumnDefinition>
      <ColumnDefinition Width="2*"></ColumnDefinition>
      <ColumnDefinition Width="*"></ColumnDefinition>
   </Grid.ColumnDefinitions>

   <TextBlock Text="header A" Background="LightGray" TextAlignment="Center" HorizontalAlignment="Stretch"></TextBlock>
   <TextBlock Text="header B" Grid.Column="1" TextAlignment="Center" HorizontalAlignment="Stretch"></TextBlock>
   <TextBlock Text="header C" Grid.Column="2" Background="LightGray" TextAlignment="Center" HorizontalAlignment="Stretch"></TextBlock>
</Grid>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如何修复DataGrid缩放?

解:

<DataGrid HorizontalScrollBarVisibility="Disabled">
...
<DataGrid.RowDetailsTemplate>
...
</DataGrid.RowDetailsTemplate>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

wpf datagrid rowdetailstemplate

15
推荐指数
1
解决办法
4409
查看次数

无法在另一个 Datagrid 的 RowDetailsTemplate 中跟踪 DataGrid 的 SelectedItem

我今天早些时候遇到了这个问题,但找不到解决方案。在SelectedItemDataGrid这里面RowDetailsTemplate的另一个DataGrid没有被置位时,我选择里面一排的DataGrid这里面的RowDetailsTemplate。(很难解释清楚。)

绑定对于列表都正常工作。MainViewModel 包含一个ObservableCollectionofMyItem对象,这就是外部DataGrid绑定到的对象。

MyItem对象包含一个ObservableCollectionofMyItem2对象并且它们正确绑定到内部DataGrid

MyItem对象还有一个名为的属性SelectedItem2,该属性应该绑定到SelectedItem内部的 ,DataGrid但永远不会被设置。

顺便说一句:我正在使用 VS2012 和 .Net 4.5。

例子:

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"
    xmlns:wpfApplication1="clr-namespace:WpfApplication1"
    Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <wpfApplication1:MainWindowViewModel x:Key="MainVm"/>
</Window.Resources>
<Grid DataContext="{StaticResource MainVm}">
    <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Path=MyItem1s}">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Name" Width="*"
                                   Binding="{Binding Path=Name}"/>
        </DataGrid.Columns>
        <DataGrid.RowDetailsTemplate>         
            <DataTemplate>
                <DataGrid AutoGenerateColumns="False"
                          ItemsSource="{Binding Path=Item2s}"
                          SelectedItem="{Binding …
Run Code Online (Sandbox Code Playgroud)

c# wpf datagrid observablecollection rowdetailstemplate

5
推荐指数
1
解决办法
1544
查看次数

具有多个图像的 WPF DataGrid RowDetailsTemplate (MVVM)

目标

使用 MVVM 标准在 DataGrid 的 RowDetails 模板中添加多个图像。

背景

我有一个带有 DataGrid 的检查窗口,用于保存损坏物品的描述以及检查员的姓名首字母。更重要的是,这个DataGrid的RowDetailsTemplate需要保存检查员拍摄的损坏物品的图片(因此损坏物品的图片可能不止一张)。

问题

我有一个 DamagedWindow.xaml 旨在创建我的 DamagedItem 条目。它看起来像这样:

RowDetails 工作

数据网格 (.XAML)

<DataGrid ItemsSource="{Binding Pictures}" SelectedItem="{Binding SelectedPicture}" AutoGenerateColumns="False" Grid.Column="1" Grid.Row="2" Margin="5" HorizontalAlignment="Stretch" Name="DataGrid1" VerticalAlignment="Stretch" CanUserAddRows="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Titre" Binding="{Binding Name}" Width="*" />
    </DataGrid.Columns>
    <DataGrid.RowDetailsTemplate>
        <DataTemplate>
            <Image Height="100" Source="{Binding Path}" />
        </DataTemplate>
    </DataGrid.RowDetailsTemplate>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

如您所见,我的 RowDetails 模板在此 DataGrid 中运行良好。我有一个名为 PicturesList 的类,它继承了我的 PictureModel( Name, Description, Path)的 ObservableCollection 。


您在 DataGrid 上方看到的文本框是我的 DamagedItemModel ( Description, Initiales, PicturesList) 的属性。因此,当用户单击接受(复选标记)按钮时,将损坏的项添加到损坏的项列表中,然后从我的主窗口将其设置为 DataGrid …

vb.net wpf datagrid mvvm rowdetailstemplate

5
推荐指数
1
解决办法
1827
查看次数