1
我想使用ScrollViewer的ScrollToVerticalOffset方法去滾動查看器的頂部。ScrollViewer和ScrollToVerticalOffset與mvvm
但隨着MVVM的接近。
我想我必須創建一個依賴屬性來採取這種行爲。
編輯: 的行爲是:
public class ScrollPositionBehavior : Behavior<FrameworkElement>
{
public double Position
{
get { return (double)GetValue(PositionProperty); }
set { SetValue(PositionProperty, value); }
}
public static readonly DependencyProperty PositionProperty = DependencyProperty.Register("Position", typeof(double), typeof(ScrollPositionBehavior), new PropertyMetadata((double)0, new PropertyChangedCallback(OnPositionChanged)));
protected override void OnAttached()
{
base.OnAttached();
}
private static void OnPositionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
ScrollPositionBehavior behavior = d as ScrollPositionBehavior;
double value = (double)e.NewValue;
((ScrollViewer)(behavior.AssociatedObject)).ScrollToVerticalOffset(value);
}
protected override void OnDetaching()
{
base.OnDetaching();
}
}
使用,如:
<ScrollViewer>
<Interactivity:Interaction.Behaviors>
<fxBehavior:ScrollPositionBehavior Position="{Binding Position}" />
</Interactivity:Interaction.Behaviors>
<other things ...>
</ScrollViewer>
與
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:fxBehavior="clr-namespace:MyNamespace.Behavior;assembly=MyAssembly"
我有一個解析器XAML例外:
這是一個:AG_E_PARSER_BAD_PROPERTY_VALUE
請注意,我使用的是基於FrameworkElement的行爲,因爲我使用silverlight 3(實際上,這是SL for WP7)。我已經看到綁定只能用於FrameworkElement。
在此先感謝您的幫助
感謝您的幫助,我現在有一個xaml解析器異常 – Tim 2010-11-12 11:18:03
請更具體一點--XamlParseException表示您的XAML代碼存在錯誤。 – robertos 2010-11-15 17:48:49
感謝您的回答,請參閱編輯 – Tim 2010-11-17 09:10:41