---
# System prepended metadata

title: 'WPF `ListBox` の `ItemsPresenter` が `ScrollViewer` の直接の子でない場合は、`x:Name` に "ItemsPresenter" という名前を付ける必要がある。  2022-06-27'
tags: [ListBox, ScrollViewer, ItemsPresenter, WPF]

---

---
lang: ja-jp
breaks: true
---
# WPF `ListBox` の `ItemsPresenter` が `ScrollViewer` の直接の子でない場合は、`x:Name` に "ItemsPresenter" という名前を付ける必要がある。  2022-06-27

> ListBox パーツ
> https://docs.microsoft.com/ja-jp/dotnet/desktop/wpf/controls/listbox-styles-and-templates?view=netframeworkdesktop-4.8#listbox-parts

## "ItemsPresenter" という名前をつけなかった場合、PageUp、PageDownイベントが正常に動作しない


以下、は問題ない。

```xaml=
<ScrollViewer 
    Padding="{TemplateBinding Padding}"
    Focusable="false" 
    >
    <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>
```

以下はダメ！！
```xaml=
<ScrollViewer 
    Padding="{TemplateBinding Padding}"
    Focusable="false" 
    >
    <Grid>
        <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
    </Grid>
</ScrollViewer>
```

以下のように `x:Name="ItemsPresenter"` を付加する必要がある。
```xaml=
<ScrollViewer 
    Padding="{TemplateBinding Padding}"
    Focusable="false" 
    >
    <Grid>
        <ItemsPresenter x:Name="ItemsPresenter" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
    </Grid>
</ScrollViewer>
```



###### tags: `WPF` `ListBox` `ItemsPresenter` `ScrollViewer`
