根据WPF中的TextBox Text属性启用/禁用按钮?

Mou*_*Mou 13 data-binding wpf xaml

我正在通过谷歌寻找代码,根据文本框中的文本属性启用和禁用按钮.如果文本框中有一些文本,则应启用该按钮,否则应禁用该按钮.

我得到了一些代码,但代码在xaml但没有c#.我无法理解它是如何工作的.

请帮我理解以下代码的行为:

<TextBox Name="txtName" Width="100" Height="30"></TextBox>

<Button Content="Add Name " Width="100" Height="30" 
  IsEnabled="{Binding ElementName=txtName, Path=Text.Length, Mode=OneWay}"/>
Run Code Online (Sandbox Code Playgroud)

IsEnabled按钮属性如何工作?如何将true和false设置为IsEnabled属性?路径是什么?它是如何工作的?

Cod*_*ked 7

文章文章解释WPF数据绑定以及如何路径工作.

但上面的绑定将在TextBox上观察Text属性以进行更改.然后,它将在Text属性返回的值上观察Length属性,该属性是一个字符串.Length属性的值传递给IsEnbled属性.

当您将Int32(Length属性)分配给布尔值(IsEnabled属性)时,也必须转换该值.这通常是通过类型转换器完成的,这就是为什么上述工作(让我感到惊讶).

更新:

上面的第一个链接不再有效,因为早于2008年的MSDN杂志文章不再在线提供.它们可用作CHM文件.相关文章的标题为"数据点:WPF中的数据绑定"的CHM链接是:

http://download.microsoft.com/download/3/a/7/3a7fa450-1f33-41f7-9e6d-3aa95b5a6aea/MSDNMagazine2007_12en-us.chm

来自MSDN:

2008和更早版本的问题仅作为.chm文件提供.在大多数Windows版本中,您必须先将这些文件保存到本地计算机,然后取消阻止该文件以进行读取.要取消阻止文件,请右键单击该文件,然后选择属性,然后选择"取消阻止"按钮.然后可以阅读内容.