【问题标题】:Adding a child to a Stackpanel in RowDetails from Code从代码中将子项添加到 RowDetails 中的 Stackpanel
【发布时间】:2013-11-24 17:05:58
【问题描述】:

我有一个带有 RowDetails 部分的 DataGrid。在 rowdetails 我有一个堆栈面板。 我想用代码动态地将孩子添加到这个堆栈面板中.....但是我无法从代码中访问面板。

       <DataGrid.RowDetailsTemplate>
        <DataTemplate>
                <Border x:Name="Border_RowDetails" Margin="5" Padding="3" BorderBrush="Blue" BorderThickness="3" CornerRadius="5">
                    <StackPanel x:Name="StackPanel_Detail" Orientation="Vertical">
                        <TextBlock Foreground="White" FontSize="30" Text="Auftragsdetails:  " Margin="100, 0,0,0"/>
                    </StackPanel>  
                </Border>
            </DataTemplate>
        </DataGrid.RowDetailsTemplate>
    </DataGrid>

我想在代码隐藏文件中将 Childs(文本块)添加到 Stackpanel“StackPanel_Detail”。

背景:

DataGrid 有一个数据表作为项目源。如果我单击一行,则会显示行详细信息,并且我应该显示来自另一个数据表的更多信息! detailrows 的数量并不总是相同的。我真的不知道如何使用 xaml 和绑定来做到这一点,因为我对 wpf 和 xaml 真的很陌生。我所能找到的只是在 datagrid.itemssource 的 rowdetails 中显示其他列。因此我想计算后面代码中的数字并为每条记录创建文本块。

例子:

数据网格 第 1 行:客户 1 订单 ID1 详情: 第 1 行:OrderID1 COILID1

数据网格 第 2 行:客户 2 订单 ID2 详情: 第 1 行:OrderID2 COILID1 第2行:OrderID2 COILID2

我真的很感激每一个帮助。我很抱歉我的英语不好!

问候, 弗洛里安

【问题讨论】:

    标签: c# xaml stackpanel rowdetails


    【解决方案1】:

    您可以在 RowDetailsTemplate 中使用 ItemsControl(将 StackPanel 作为 ItemsPanel),将其 ItemsTemplate 定义为包含 TextBlock(或您想要的任何复杂 UI)的 DataTemplate,然后将 ItemsControl 的 ItemsSource 属性数据绑定到 ObservableCollection .然后将为您添加到集合中的每个项目生成一个 TextBlock。 MVVM 救援 ;) 请注意,您需要增强 DataGrid Row ViewModel,使其每个都包含一个 ObservableCollection,用于显示您希望在其详细信息面板中显示的内容。

    【讨论】:

    • 首先,感谢您的快速答复。但是你能给我一个简短的例子吗?我从未使用过 ItemsControl,我首先需要谷歌 ObservableCollection ......对不起,我很惭愧!
    【解决方案2】:

    我在另一个板上找到了解决方案。我使用了一个 ContentPresenter 和一个“Content_Loaded”-Event 并且我在代码中编写了 StackPanel 和 TextBlocks .....我想这不是最干净的解决方案,但它可以工作!

    【讨论】:

      猜你喜欢
      • 2014-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-22
      • 1970-01-01
      • 2011-07-20
      相关资源
      最近更新 更多