Bagaimana cara mengikat ke TemplatedParent dari DataTemplate yang didefinisikan dalam suatu gaya?

Saya sedang mengembangkan kontrol khusus yang berasal dari ItemsControl. Dalam file generik.xaml saya membuat gaya untuk kontrol itu dan juga mendefinisikan ItemTemplate:

<Style TargetType="local:MyItemsControl">
    <Setter Property="ItemTemplate">
        <Setter.Value>
            <DataTemplate>
                <Border Background="Red">
                    <!-- Other things in here -->
                </Border>
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>

Saya ingin mengikat properti Background dari Border di DataTemplate ke properti ketergantungan MyItemsControl.

Jika ditemukan beberapa pertanyaan di sini menyarankan untuk menggunakan nama elemen MyItemsControl dalam pengikatan, tetapi itu hanya berfungsi saat mendefinisikan ItemTemplate tempat kontrol digunakan. Saya juga mencoba mengikat RelativeSource yang mendefinisikan local:MyItemsControl sebagai tipe leluhur.

Tidak ada yang berhasil. Apa yang kulewatkan di sini?


person Spontifixus    schedule 29.08.2013    source sumber
comment
Di ControlTemplate Anda bisa menggunakan TemplateBinding. Tapi ini hanya tersedia dalam ControlTemplates... Saya akan mencoba cara leluhur.   -  person MVCible    schedule 29.08.2013
comment
Saya mencobanya - tetapi tidak berhasil. Jadi ini tidak berhasil - atau saya melakukan kesalahan...   -  person Spontifixus    schedule 29.08.2013


Jawaban (1)


Apa jenis DependencyProperty itu? Apakah Brush atau string? Kode sederhana ini berfungsi untuk saya:

Background="{Binding Name, RelativeSource={RelativeSource AncestorType=ItemsControl}}" 

Hanya untuk pengujian di sini saya mengikat properti Nama ItemsControl yang 'Kuning' - dan berhasil.

person icebat    schedule 30.08.2013