2013-09-12 2 views
1

Как реализовать следующую привязку xaml в коде?Привязка к прикрепленному свойству в коде за

<Canvas x:Name="_YAxis"> 
    <Label Content="0.2" Canvas.Left="25" Canvas.Bottom="{Binding ElementName=_YAxis, Path=ActualHeight, Converter={StaticResource myPercentageOf}, ConverterParameter={StaticResource Constant_pt2} }" /> 
</Canvas> 

Примечание, конвертер просто умножает фактическую высоту холста на 0,2

Я могу разобраться большинство рода привязок, но это один имеет меня в тупик.

Я могу создать связывание с использованием

Label label = new Label() { label.Content = "0.2" }; 

Binding binding = new Binding("ActualHeight"); 
binding.Source = _YAxis; 

// attach binding ??? 

_YAxis.Children.Add(label); 

но как я придаю связывание с вложенным свойством Canvas.Left?

ответ

3

Здесь вы идете:

Binding b = new Binding(); 
    b.Path = new PropertyPath("ActualHeight"); 
    b.Source = _YAxis;// OR b.ElementName = "_YAxis" 
    b.Converter = Resources["myPercentageOf"]; 
    b.ConverterParameter = Resources["Constant_pt2"]; 

    Label label = new Label() { label.Content = "0.2" }; 
    _YAxis.Children.Add(label); 
    label.SetBinding(Canvas.BottomProperty, b); //Binding Canvas.Bottom to ActualHeight of _YAxis 
    Canvas.SetLeft(label, 25); //Setting Canvas.Left 
+0

@larryB ли это решить проблему? – Nitin

+0

Прошу прощения за мою грубость, не поблагодарив вас за ваш ответ. Я не знал, как получать уведомления об обновлениях, поэтому не видел вашего ответа. – LarryB

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