Я предполагаю, что XAML, который вы имеете выше, является частью ControlTemplate для вашего CustomControl, верно?Я также предположил бы, что вы получаете контрольные части для метода OnApplyTemplate (), верно?Если это так, то, я думаю, вам нужно вызвать вызов PART_SoundList.ApplyTemplate () перед поиском ScrollViewer.Итак, код для вашего пользовательского элемента управления должен выглядеть примерно так:
public class MyControl : Control
{
private ListBox lb;
private ScrollViewer scroller;
static MyControl()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(MyControl), new FrameworkPropertyMetadata(typeof(MyControl)));
}
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
lb = this.Template.FindName("PART_SoundList", this) as ListBox;
lb.ApplyTemplate();
scroller = lb.Template.FindName("Scroller", lb) as ScrollViewer;
}
}