UserControl的DataContext不从其父Grid继承?

时间:2017-07-19 16:00:57

标签: c# wpf

我正在实现一个将一些用户控件加载到窗口的功能(它显示与用户控件相关的对象的记录历史记录),因此我将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; }

0 个答案:

没有答案