Привязка свойства UserControl к его дочернему элементу через ElementName приводит к ошибке привязки

У меня есть следующий XAML:

<UserControl x:Class="WpfWindow.MyControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             mc:Ignorable="d"
             d:DesignHeight="300" d:DesignWidth="300">
  <UserControl.RenderTransform>
    <TranslateTransform X="{Binding ElementName=MySlider, Path=ActualWidth}" />
  </UserControl.RenderTransform>
  <Grid>
    <Slider x:Name="MySlider" Canvas.Left="41" Canvas.Top="86" Height="23"  Width="100" Minimum="0" Maximum="100"/> 
  </Grid>
</UserControl>

Когда я пытаюсь использовать окно с внутри UserControl я получаю:

System.Windows.Data Error: 4 : Cannot find source for binding with reference 'ElementName=MySlider'. BindingExpression:Path=ActualWidth; DataItem=null; target element is 'TranslateTransform' (HashCode=53368240); target property is 'X' (type 'Double')

Это особенно странно, поскольку использование того же кода непосредственно в Window работает безупречно.

На данный момент я решил проблему, установив привязку в коде, однако я не знаю, почему моя версия не работает, и я бы предпочел, чтобы все было в XAML, если это возможно.

Спасибо!

7
задан VitalyB 20 February 2011 в 10:52
поделиться