私はUWPのカスタムコントロールを開発することを学んでおり、ScrollViewerを含むコントロールを開発する必要があります。 generic.xamlは次のようになります。スクロールを使用したUWPカスタムコントロール
<Style TargetType="local:TemplatedScroller" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:TemplatedScroller">
<ScrollViewer x:Name="NumberScroller"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
</ScrollViewer>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
対応するCSクラスは、今非常に簡単です。私のコントロールで
public sealed class TemplatedScroller : Control
{
public TemplatedScroller()
{
this.DefaultStyleKey = typeof(TemplatedScroller);
}
private ScrollViewer numberScroller;
protected override void OnApplyTemplate()
{
base.OnApplyTemplate();
numberScroller = GetTemplateChild("NumberScroller") as ScrollViewer;
}
}
私はプロパティがRegisterPropertyChangedCallbackを使用してスクロールバーのVerticalOffsetプロパティのコールバックを変更登録できることを考えたように、ユーザがコンテンツをスクロールする際に知っている必要があります。 OnApplyTemplateメソッドでコールバックを登録できます。
私の質問は、どこのUnregisterPropertyChangedCallbackを呼び出すべきですか?私は上書きするUnloadメソッド(またはそれに類するもの)を見つけることができませんでした。それとも、私のアプローチが間違っていますか?これはUWPでのやり方ではありませんか?