我是一个完整的 .NET/C# nublet。我继承了一些使用 XAML 为窗口定义 UI 的代码,并且我正在尝试与一些现有的 XML 垃圾进行交互。这可能是一个非常简单的问题;我只是不知道要谷歌什么。
我有一个文本框,我想根据 bool 值禁用它。我可以用这段代码做到这一点:
list A:
<TextBox x:Name="ServerNameTextBox" ... IsEnabled="{Binding ServerName.Editable}" />
当我想将它基于一个变量和一个复选框时,问题就来了。我已经阅读了有关 IMultiValueConverter 的文章并为此编写了一篇文章,但我不确定如何指定绑定(bind),因为格式发生了变化。
list B:
<TextBox x:Name="ServerNameTextBox" ... >
<TextBox.IsEnabled>
<Binding ElementName="CheckBoxServerNameEnabled" Path="IsChecked" />
<Binding ??? />
</TextBox.IsEnabled>
</TextBox>
为了做出与第一行中相同的引用,问号中需要添加什么?告诉我 list A 中使用的绑定(bind)类型叫什么的加分项。
谢谢!
最佳答案
{Binding ServerName.Editable}
是 ( in this case ) 等同于 {Binding Path=ServerName.Editable}
所以在你的MultiBinding
中你有
<MultiBinding Converter="...">
<Binding ElementName="CheckBoxServerNameEnabled" Path="IsChecked"/>
<Binding Path="ServerName.Editable"/>
</MultiBinding>
在markup extensions未命名的参数被传递给构造函数,Binding
有一个 constructor which takes a path .
关于c# - 如何将绑定(bind)标记扩展从内联语法转换为元素语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12094188/