如何从代码隐藏设置DataContext

时间:2016-01-14 09:55:47

标签: c# wpf datacontext

如果我尝试通过DataContext设置我的Button_Click,那么孩子就不会继承它。我在这里想念什么?

简单测试示例:

XAML

<StackPanel>
    <Button Content="Add Datacontext"
            Height="50" Click="Button_Click"/>
    <ContentControl Name="Test"/>
</StackPanel>

代码背后

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        Test.DataContext = DateTime.Now;
    }

结果

ContentPresenter中生成的ContentControl在点击后仍为空,但应为DateTime

enter image description here

2 个答案:

答案 0 :(得分:1)

设置了内容控件的DataContext,您正在检查 ContentControl中的内容演示者 ...

<ContentControl Name="Test" Content="{Binding}">

会解决它。

答案 1 :(得分:0)

您正在设置ContentControl.DataContext Contentnull

首先尝试设置实际内容,例如

<ContentControl x:Name="Test">
    <!-- this will have DataContext as you expected -->
    <TextBlock />
</ContentControl>