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>