[英]Silverlight element to element binding in generic.xaml
在Silverlight模板化控件中是否有將元素綁定到元素的方法?
示例:我有兩個自定義控件, SomeControl
和CustomSlider
。 SomeControl
具有一個名為someValue
的依賴項屬性。 我想將CustomSlider
的值綁定到此屬性,所以我的generic.xaml文件如下所示:
<Style TargetType="local:SomeControl"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="local:SomeControl"> <...> </ControlTemplate> </Setter.Value> </Setter> </Style>
<Style TargetType="local:CustomSlider">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:CustomSlider">
<Slider Value="{Binding someValue, ElementName=local:SomeControl}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
這是我的依賴項屬性:
public int someValue, { get { return (int)GetValue(someValueProperty); } set { SetValue(someValueProperty, value); } } public static readonly DependencyProperty (someValueProperty) = DependencyProperty.Register(someValue); typeof(int), typeof(SomeControl, new PropertyMetadata(0));
這將引發“ BindingExpression_CannotFindElementName”異常。
您不能像這樣使用它。 通過ElementName
進行的綁定應用於特定的元素實例,而不是樣式。 您可以創建其他依賴屬性,說SliderValue
在CustomSlider
控制和綁定到它。
<local:SomeControl x:Name="SomeControl"/>
<local:CustomSlider SliderValue="{Binding someValue, ElementName=SomeControl}"/>
並在SliderValue
屬性更改時從模板更改Slider Value
;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.