gpt4 book ai didi

wpf - 如何编辑使用多重绑定(bind)和 string.format 的 WPF 文本框?

转载 作者:行者123 更新时间:2023-12-04 14:09:36 27 4
gpt4 key购买 nike

我有以下代码。

这会以 H:M:S 格式显示数据。我想编辑这些值...并希望在 View 模型中得到通知。

我该如何实现?

如有任何帮助,我们将不胜感激。谢谢

  <TextBox  DataContext="{Binding UpdateSourceTrigger=PropertyChanged}" >
<TextBox.Text>
<MultiBinding StringFormat=" {0}:{1}:{2}">
<Binding Path="ValueH" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" />
<Binding Path="ValueM" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" />
<Binding Path="ValueS" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" />
</MultiBinding>
</TextBox.Text>
</TextBox>

最佳答案

StringFormat 绑定(bind)是单向的

您需要做的是编写您自己的同时实现 ConvertBack 方法的多值转换器。

一个非常简单的转换器如下所示。您将需要添加错误检查,并且毫无疑问有更好的方法来转换回来(可能使用正则表达式)。另外,我不确定我的 DateTime 位是否正确,但它为您提供了一个起点。

public class TimeConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
return string.Format("{0}:{1}:{2}",values[0],values[1],values[2]); }

public object[] ConvertBack(object value, Type[] targetTypes, object parameter,
System.Globalization.CultureInfo culture)
{
var date=DateTime.Parse((string)value);
return new object[] { date.Hours,date.Minutes,date.Seconds };

}
}

关于wpf - 如何编辑使用多重绑定(bind)和 string.format 的 WPF 文本框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8142583/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com