Ваш код выглядит для меня более-менее корректно, на первый взгляд, хотя я не ожидаю, что вам потребуется использовать ObservableCollection <>, чтобы получить ожидаемые результаты: простой List <> Работало бы просто отлично.
Если отладчик сообщает вам, что DataContext корректно обновляется до ожидаемого элемента, то наиболее вероятной проблемой является проблема с определением вашей привязки.Если вы не видите каких-либо ошибок связывания в вашем окне отладки, тогда я загляну в статью Bea Stollnitz о отладочных привязках .В частности, я часто использую технику, которую она предлагает для «DebugValueConverter», например:
/// <summary>
/// Helps to debug bindings. Use like this: Content="{Binding PropertyName, Converter={StaticResource debugConverter}}"
/// </summary>
public class DebugConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
}
}
И затем устанавливаю точку останова в вашем конвертере и наблюдаю, что происходит.Это хак и клудж, но пока мы все не на SL5 (в котором встроена отладка привязки), это ваш лучший выбор.