列表框Datatemplate更新

时间:2011-11-03 09:12:31

标签: xaml windows-phone-7 listbox datatemplate

我有一个带有Listbox的Windows Phone 7应用程序。我已经创建了自己的模板选择器类,它根据绑定对象中的项目数选择正确的数据模板。它工作正常。但我需要的,以及什么不能正常工作,是当我更改绑定对象中的项目数,重新加载模板选择器和根据实际数字更新模板。 例如:具有属性x>的ListItems;当x =< 9时,颜色为红色。 9,颜色为绿色。当我用onpage按钮从8到9更改此数字时,我需要更改颜色。它不起作用。看起来模板选择器仅在navigateTo事件上调用... 帮助:)

1 个答案:

答案 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();
    }
}