我有一个带有Listbox的Windows Phone 7应用程序。我已经创建了自己的模板选择器类,它根据绑定对象中的项目数选择正确的数据模板。它工作正常。但我需要的,以及什么不能正常工作,是当我更改绑定对象中的项目数,重新加载模板选择器和根据实际数字更新模板。 例如:具有属性x>的ListItems;当x =< 9时,颜色为红色。 9,颜色为绿色。当我用onpage按钮从8到9更改此数字时,我需要更改颜色。它不起作用。看起来模板选择器仅在navigateTo事件上调用... 帮助:)
答案 0 :(得分:0)
对于您要执行的操作,我建议您使用IValueConverter
但是,您需要确保反映数字值的属性也是Observable。 (即你需要从它的setter中调用OnPropertyChanged
)。
但像这样的价值转换器应该可以解决这个问题:
public class IntToColorValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is int)
{
int number = (int)value;
if (number < 9)
return Colors.Green;
else if (number > 9)
return Colors.Red;
}
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}