WPF DataContext从另一堂课

问题描述

具有从类 SearchByID 获取的常规DataContext,因此有必要从另一个类(例如 testClass )中获取单独的DataContext。

XAML示例:

<Window.DataContext>
        <model:SearchById />
 </Window.DataContext>

<Grid>

<TextBlock Text="{Binding Description}">
<Texblock.DataContext>
<model: testClass/>
</TextBlock.DataContext>
</TextBlock>


</Grid>

没有失败,IntelliSens会看到所有属性。 但是TextBlock是空白的。

任何想法。

解决方法

一个主意,Description是属性还是字段?

Property将起作用:

public class TestClass
{
    public string Description { get; set; }
    public TestClass()
    {
        Description = "Test";
    }
}

field不会:

public class TestClass
{
    public string Description;
    public TestClass()
    {
        Description = "Test";
    }
}

MainWindow.xaml

<TextBlock Text="{Binding Description}"
           Background="Yellow" 
           HorizontalAlignment="Center"
           VerticalAlignment="Center">
    <TextBlock.DataContext>
        <local:TestClass />
    </TextBlock.DataContext>
</TextBlock>

结果: the word test on a white background highlighted yellow

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...