我正在实现一个将一些用户控件加载到窗口的功能(它显示与用户控件相关的对象的记录历史记录),因此我将List发送到该History窗口(从UC到另一个不同): 例如,当用户单击应用程序中的“区域”按钮时,我执行此操作:
var frmHistory = new FrmHistory();
frmHistory.HistoryData = historylist;
var frm = new FrmArea(historylist[0]);
frmHistory.grdHistoryForm.Children.Add(frm);
frmHistory.ShowDialog();
这是FrmHistory
看起来(简化):
<Window x:Class="App.Forms.Generics.FrmHistory"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="FrmHistory" Height="520" Width="650">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid Grid.Row="1" Margin="3" Name="grdHistoryForm">
</Grid>
</Grid>
</Window>
我想将用户控件注入grdHistoryForm
,并将DataContext
的{{1}}设置为grdHistoryForm
属性(这是我迭代的列表)导航按钮),
但是当我这样做时,内部子项的HistoryData
没有获得父Grid的值,
在DataContext
的构造函数中,我直接发送了对象,并将该UC的内部网格的FrmArea
设置为该对象,并且它可以正常工作。
但我需要的是能够设置DataContext
的{{1}}:
DataContext
我在FrmHistory
public object HistoryData { get; set; }