<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
DataContext="This is my text">
<TextBlock>
<Run Text="{Binding}"/>
</TextBlock>
</Window>
抛出InvalidOperationException
:“双向绑定需要Path或XPath。”
指定Mode=OneWay
会导致奇怪的编译错误:
The tag 'Binding,' does not exist in XML namespace 'http://schemas.microsoft.com/winfx/2006/xaml/presentation'.
有没有任何一种解决这个问题的方法?
答案 0 :(得分:3)
我还没有找到原因,但是如果没有它变得太尴尬,你就可以做到这一点:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
DataContext="This is my text">
<TextBlock>
<Run Text="{Binding Path=.}"/>
</TextBlock>
</Window>
出于某种原因
<Run Text="{Binding}" />
导致运行时错误,但
<Run Text="{Binding Path=.}" />
没有。当您对绑定“模棱两可”时,原因可能与某些事情有关,有一些后退行为可以解释您的绑定。或许,这是一个真正的MS Bug,在{Binding}
控件上解释Run
。
答案 1 :(得分:0)
找到一个奇怪的工作方式:
<Window
x:Name="Me"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
DataContext="This is my text">
<TextBlock>
<Run Text="{Binding DataContext, ElementName=Me}"/>
</TextBlock>
</Window>