我有时会遇到标签,其中内容随某些对象的值动态变化。虽然字符串是静态的,但它们需要根据我的属性进行更改。
一种简单的方法是实现一个转换器,它接受我的对象并返回我想要的字符串。这将导致许多只有一个任务并且无法在不同情况下使用的转换器。
我也可以在我的 ViewModel 中更改标题 -> 这是更好的方法吗?
String DynamicLabel
{
get
{
if ( this.x == 1 )
{
return staticString1;
}
//etc etc
}
}
OnPropertyChanged("DynamicLabel")
你的XAML代码应该类似于下面这样:
<textblock text="{Binding Path = DynamicLabel , updateSourceTrigger = OnPropertyChanged}"/>
Binding TestValue, Converter={StaticResource TestConverter}, ConverterParameter='Test'}
public object Convert(object value, Type targetType, object parameter, string language)
{
if (parameter != null && parameter.Equals("Test"))
{ //Do some operation
}
}
通过使用参数,您可以在单个转换器中执行不同的操作。
DataTrigger
。 - Rohit Vats