Я слежу за этим примером автоматической прокрутки в ListBox на WP7 Mango RC с таргетингом 7.1.
В моем Xaml:
<ListBox x:Name="StatusMessages"
Height="100"
ItemsSource="{Binding StatusMessages, Mode=TwoWay}"
DisplayMemberPath="Message"
Grid.Row="3">
<i:Interaction.Behaviors>
<behaviors:ListBoxItemAutoScrollBehavior FoundItem="{Binding FoundItem}" />
</i:Interaction.Behaviors>
</ListBox>
Поведение:
public class ListBoxItemAutoScrollBehavior : Behavior<ListBox>
{
public object FoundItem
{
get { return GetValue(FoundItemProperty); }
set { SetValue(FoundItemProperty, value); }
}
public static readonly DependencyProperty FoundItemProperty = DependencyProperty.Register("FoundItem", typeof (object), typeof (ListBoxItemAutoScrollBehavior), new PropertyMetadata(FoundItemChanged));
private static void FoundItemChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
((ListBoxItemAutoScrollBehavior) d).AssociatedObject.ScrollIntoView(e.NewValue);
}
}
У меня есть точка останова, установленная в методе FoundItemChanged, и я ожидаю увидеть ее попадание, когда я установлю FoundItem в моей ViewModel и сработаю NotifyProperyChanged.Только, это не работает, какие-либо идеи, почему или что я мог бы делать неправильно?
Спасибо.
обновление : точки останова удаляются для OnAttached и OnDetaching вповедение.
обновление 2: это работает в обычном приложении Silveright 4.
обновление 3: использование версии 3.8.5.0 System.Windows.Интерактивность исправила это.