C# StringFormat XAML绑定到多个控件
我有一个自定义的C# StringFormat XAML绑定到多个控件,c#,.net,wpf,xaml,binding,C#,.net,Wpf,Xaml,Binding,我有一个自定义的按钮类型,无法更改代码。此按钮有一个名为MyArguments的属性,该属性接受以分号分隔的字符串值 我在屏幕上有一堆文本框供用户输入一些信息 <TextBox Name="TestTextBox1" /> <TextBox Name="TestTextBox2" /> <TextBox Name="TestTextBox3" /> 我需要在纯XAML中完成此操作。没有代码隐藏 有什么想法吗?这听起来好像解析器无法将元素语法属性与元素实例相关
按钮
类型,无法更改代码。此按钮有一个名为MyArguments
的属性,该属性接受以分号分隔的字符串值
我在屏幕上有一堆文本框供用户输入一些信息
<TextBox Name="TestTextBox1" />
<TextBox Name="TestTextBox2" />
<TextBox Name="TestTextBox3" />
我需要在纯XAML中完成此操作。没有代码隐藏
有什么想法吗?这听起来好像解析器无法将元素语法属性与元素实例相关联。即,它认为您正在定义一个附加属性,即使它应该是一个实例属性 e、 g
您引用的是同一类型吗?按钮上没有前缀,或者有人滥用系统并编译程序集以使用WPF名称空间,这看起来也很奇怪。这听起来好像解析器无法将元素语法属性与元素实例相关联。即,它认为您正在定义一个附加属性,即使它应该是一个实例属性 e、 g
您引用的是同一类型吗?按钮上没有前缀,或者有人滥用系统并编译程序集以使用WPF命名空间,这看起来也很奇怪。您忘记将命名空间前缀(例如,
local
)添加到属性中:
<local:MyButton>
<local:MyButton.MyArguments>
<MultiBinding StringFormat="Arguments;{0};{1}">
<Binding ElementName="TestTextBox1" Path="Text" />
<Binding ElementName="TestTextBox2" Path="Text" />
</MultiBinding>
</local:MyButton.MyArguments>
</local:MyButton>
您忘记将名称空间前缀(例如
local
)添加到属性:
<local:MyButton>
<local:MyButton.MyArguments>
<MultiBinding StringFormat="Arguments;{0};{1}">
<Binding ElementName="TestTextBox1" Path="Text" />
<Binding ElementName="TestTextBox2" Path="Text" />
</MultiBinding>
</local:MyButton.MyArguments>
</local:MyButton>
这是什么样的错误?它编译吗?运行时失败?@Dennis:如果使用StringFormat
@H.B,则不会。编译错误。MyButton
肯定与命名空间前缀一起使用,如
。然后将属性写为
@Dennis这正是StringFormat=“Arguments;{0};{1}”
所做的。这是什么样的错误?它编译吗?运行时失败?@Dennis:如果使用StringFormat
@H.B,则不会。编译错误。MyButton
肯定与命名空间前缀一起使用,如
。然后将属性写为
@Dennis这正是StringFormat=“Arguments;{0};{1}”
所做的。
<ListBox ItemsSource="{Binding Data}">
<ListView.ItemTemplate>
<!-- Template -->
</ListView.ItemTemplate>
<ListBox>
<local:MyButton>
<local:MyButton.MyArguments>
<MultiBinding StringFormat="Arguments;{0};{1}">
<Binding ElementName="TestTextBox1" Path="Text" />
<Binding ElementName="TestTextBox2" Path="Text" />
</MultiBinding>
</local:MyButton.MyArguments>
</local:MyButton>