假设我有财产
FIrstName
和LastName
我需要用 single 绑定它textbox
。
所以在一个文本框中,我可以同时 FirstName
显示和LastName
。
那怎么可能呢?
假设我有财产
FIrstName
和LastName
我需要用 single 绑定它textbox
。
所以在一个文本框中,我可以同时 FirstName
显示和LastName
。
那怎么可能呢?
您可以使用多重绑定来做到这一点
对于OnWay绑定使用这个:
<TextBox>
<TextBox.Text>
<MultiBinding StringFormat="{}{0} {1}" Mode="OneWay">
<Binding Path="FirstName"/>
<Binding Path="LastName"/>
</MultiBinding>
</TextBox.Text>
</TextBox>
有关 MutiBinding 类的更多信息,请查看此处
Try the MultiBinding Class :
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource myConverter}">
<Binding Path="FirstName" />
<Binding Path="LastName" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
第三个属性FullName
,也许。
如需更好的帮助,请提出更好的问题(例如,您的类型是什么)。
编辑:无论如何,我建议至少有两个文本框,这样你就可以安全地处理“多部分名称”,就像上面提到的那样Karl Heinz Schmidt-Meyer von Neuenhausen zu Bad-Reichenhall
。除了不那么模棱两可之外,这是网络表单的事实上的标准。
编辑2:作为关于Navid Rahmani答案的注释,因为它打开了真正严重的数据库损坏的可能性,系统管理员加班费,程序员,他们没有起点和线索来解释他们的应用程序失败的原因,以及大量钱。也就是说,如果在您的客户已经失去客户之前发现了这种令人毛骨悚然的腐败。
有问题的代码
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
string[] strings = ((string)value).Split(' ');
return strings;
}
我的问题是它将如何处理多部分名称。他回答说可以用“,”。我的回复:
您的代码无法处理此问题,因为它无法处理少于两个名称组件的情况(您将得到一个
IndexOutOfRangeException
)。此外,您的代码不会处理多个或被遗忘的空格。对于每一个额外的空白,它都会产生一个单独的值标记,可能会用消失的数据破坏数据库条目(因为您只读取前两个条目)。此外,您必须验证用户是否忘记了逗号或输入错误,例如使用分号或斜线。随着分离到不同的领域,所有这些问题都不再存在。用户输入是第一大安全性和程序稳定性问题。
<TextBlock Name="textBox">
<TextBlock.Text>
<MultiBinding>
<Binding Path="FirstName"/>
<Binding Path="LastName"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
Something like this should get you close. This was not written in VS so I'm not sure if it's syntactically correct.