Привязать ListBox или ItemsControl внутри пользовательского элемента управления Button

Привет, я новичок в XAML, и я пытаюсь создать пользовательский элемент управления кнопки переключения. У моего элемента управления есть следующий код, который не дает никакой ошибки компиляции или времени выполнения, но не отображает данные. Я продолжал получать ошибку, когда пытался делать регулярные привязки к шаблонам, после исследования я обнаружил, что мне нужно использовать Relative Source. Но не могу получить список для заполнения. Может кто-нибудь подсказать, что я делаю не так? Или, если есть лучший способ сделать это?

Цель: создать проверяемый элемент управления, который имеет элемент управления списком.

XAML Generic.xml: (этот код находится внутри шаблона элемента управления с переключателем)

    <ListBox BorderBrush="Red" BorderThickness="2" 
ItemsSource="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=MyRoutes}">
<!--<ItemsControl.ItemsSource>
<Binding Mode="TwoWay" Path="MyRoutes">
<Binding.RelativeSource>
<RelativeSource Mode="TemplatedParent"/>
</Binding.RelativeSource>
</Binding>
</ItemsControl.ItemsSource>-->
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<!--<TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Value}"></TextBlock>-->
<TextBlock Text="{Binding Path=Value, RelativeSource={RelativeSource Self}}"></TextBlock>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ListBox>

Код позади PlainToggleButton.cs:

public string[] MyRoutes
    {
        get { return (string[])GetValue(MyRoutesProperty); }
        set { SetValue(MyRoutesProperty, value); }
    }

    // Using a DependencyProperty as the backing store for MyRoutes.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty MyRoutesProperty =
        DependencyProperty.Register("MyRoutes", typeof(string[]), typeof(PlainToggleButton), new PropertyMetadata(OnMyRoutesChanged));

    private static void OnMyRoutesChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        return;
    }

Код MainWindow.xaml:

<local:PlainToggleButton Grid.Row="1" MyRoutes="{Binding MyRoutes}">            
    </local:PlainToggleButton>

0 ответов

Другие вопросы по тегам