Jak zdefiniować TemplateBinding dla mojego niestandardowego sterowania?Szablon niestandardowej kontroli WPFBinding
Odpowiedz
trochę somthing tak ..... (btw, to jest WPF XAML, nie silverlight-- który jest nieco inny)
<style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Green">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid Background={TemplateBinding Background}
</ControlTemplate>
</Setter.Value>
</Setter>
</style>
teraz, gdy stosuje się ten styl do obiektu, ilekroć ustawić tło tego obiektu, szablon będzie użyć właściwości tła (w tym to właściwość w sterowaniu przyciskami) i będzie domyślnie ustawiona w stylu (w tym przypadku na zielony)
Jeśli chcesz użyć właściwości, która nie jest dostępna dla obiektu twojego stylu, masz aby uzyskać własną kontrolę i dodać właściwość jako DependencyProperty lub użyć interfejsu INotifyPropertyChanged. Here to przyzwoite wytłumaczenie dla ciebie.
Potrzebujesz więcej informacji o tym, co próbujesz zrobić. Konfigurowanie TemplateBinding
można zrobić z poniższym XAML:
{TemplateBinding YourProperty}
lub
{Binding RelativeSource={RelativeSource TemplatedParent}, Path=YourProperty}
gdzie mogę utworzyć źródło tego powiązania i wartość domyślną? – Peter
czy to wszystko? jeśli chcę tworzyć własne, wystarczy użyć setera o unikalnej nazwie? – Peter
właściwość musi istnieć na obiekcie, jako właściwość DependencyProperty lub jako właściwość INotifyPropertyChanged. W tym przypadku Tło jest podstawową właściwością większości kontrolek. –