如何在XAML中绑定包含空格(类似)字符的属性?

时间:2015-03-19 06:54:30

标签: wpf xaml properties bind

在我DataContext的{​​{1}}中,我有一个对象,它暴露了一个名为“姓氏姓氏”的属性。

到目前为止,我已尝试过这三种可能性:

TextBox

没有效果。有人能为我提供一个有效的例子吗?

编辑: 我在PowerShell运行空间中创建了datacontext对象,如下所示:

Text="{Binding selectedEntity.Name Surname}"

Text="{Binding selectedEntity.'Name Surname'}"

Text="{Binding selectedEntity."Name Surname"}"

在那里,我被允许通过

访问该物业
$myObject = New-Object PSObject
$myObject | Add-Member -Name "Sure Name" -Value "test" -MemberType "NoteProperty"

2 个答案:

答案 0 :(得分:4)

不允许在标识符名称中使用空格字符(Unicode代码点值32)。

属性名称是使用其他一些unicode字符生成的,该字符看起来像一个空格,或者在IL中生成了类,其中标识符可以包含在C#中无效的字符。

您应该尝试找出为什么该属性具有该名称并尝试首先修复命名。如果您不知道在生成的课程中使用了哪些字符,那么无论如何都会丢失。

XAML允许转义特殊字符。如果您的属性名称包含例如空格字符(0x20),您可以尝试使用:

Text="{Binding selectedEntity.Name Surname}"

有关Spaces in identifier names的更多内容可能很有趣(或引起噩梦......)

答案 1 :(得分:0)

尝试从代码Behind添加绑定,可以达到目的

Binding mB = new Binding();
mB.Source = MyProperty;
myTextBlock.SetBinding(TextBlock.TextProperty, mB);
myTextBlock.DataContext = this;