2
<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'.

有什么方法可以解决这个问题吗?

4

2 回答 2

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控件上进行了解释。

于 2011-05-02T20:54:38.643 回答
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>
于 2010-12-19T03:01:35.340 回答