小编maw*_*rya的帖子

WPF - 绑定到另一个对象内的自定义对象的属性

我在WPF 4/C#工作.我有两个自定义类:

public class c1 {
    public string prop1 { get; set; }

    public c1() {
        prop1 = "world";
    }
}

public class c2 {
    public string prop1 { get; set; }
    public c1 obj1 = new c1();

    public c2() {
        prop1 = "hello";
    }
}
Run Code Online (Sandbox Code Playgroud)

在XAML中,我想绑定到这些类的属性.这是我有的:

<Window.Resources>
    <my:c2 x:Key="c2"/>
</Window.Resources>
<StackPanel>
    <TextBlock DataContext="{DynamicResource c2}" Text="{Binding prop1}"/>
    <TextBlock DataContext="{DynamicResource c2}" Text="{Binding obj1.prop1}"/>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

(这里<my:c2 ../>实例化c2类.)第一个TextBlock绑定有效.第二个没有.为什么我不能绑定到obj1上的属性?我似乎只能绑定到直接类的属性.我想能够绑定到其他东西,如属于直接类的数组中的元素或子类的属性,如上所示.我错过了什么?如果我使用get/set将obj1.prop1包装在immediate类的另一个属性中,它就可以工作.但我不想这样做,特别是如果我开始使用数组,我不想将每个元素包装成一个单独的属性!

c# xaml binding c#-4.0

9
推荐指数
2
解决办法
2万
查看次数

XPath获取唯一元素名称

我想使用XPath来获取XML文件中出现的所有元素的名称列表.但是,我不希望重复任何名称,因此不应匹配与前一个元素同名的元素.到目前为止,我有:

*[not(local-name() = local-name(preceding::*))]
Run Code Online (Sandbox Code Playgroud)

这执行正常,但它会重复出现.为什么要吐出重复的内容,如何消除它们?(我正在使用Firefox的XPath引擎.)

xslt xpath

5
推荐指数
2
解决办法
8081
查看次数

标签 统计

binding ×1

c# ×1

c#-4.0 ×1

xaml ×1

xpath ×1

xslt ×1