2009-10-14 4 views
4

Есть ли способ привязки к экземпляру другого элемента управления? Что-то вроде этого:Связывание с другим элементом управления в Silverlight

<Button x:Name="Foo" Content="Foo" /> 
<local:CustomControl OtherControl="{Binding Foo}" /> 

Я попытался установить DataContext на «это» в конструкторе MainPage, но это не похоже на работу.

CustomControl определяется что-то вроде этого:

class CustomControl 
{ 
    public FrameworkElement OtherControl { get; set; } 
} 

ответ

7

Не уверен, что вы пытаетесь сделать, но в Silverlight 3 вы можете использовать элемент привязки для привязки к собственности на контроль.

<Button x:Name="Foo" Content="Foo" /> 
<local:CustomControl x:Name="control" Property="{Binding Path=Content, ElementName=Foo}" /> 

В коде вы всегда можете проанализировать привязку и получить элемент от этого?

control.GetBindingExpression (Свойство) .ParentBinding.Source

1

невозможно в Silverlight 2:

Silverlight 2 не позволяет связать один элемент к другому элементу. Вместо этого все привязки относятся к данным объектов. (Вы можете обойти эту проблему с помощью промежуточного объекта, но добавленное неудобство означает это редко стоит.)

1
<Button x:Name="Foo" Content="Foo" /> 
<local:CustomControl x:Name="control" OtherControl="{Binding ElementName=Foo}" /> 
+0

Возможно это не работает с Silverlight 2.0, но для 5.0 (и, возможно, ниже), это, безусловно, является правильный ответ в отношении связывания экземпляр другого элемента управления. –

Смежные вопросы