Привязка StaticResource к свойству FrameworkElement - PullRequest
0 голосов
/ 11 декабря 2011

Я пытаюсь использовать PetCold's LineChartGenerator (из http://msdn.microsoft.com/en-us/magazine/ee291567.aspx), доступ к которому осуществляется как StaticResource:

 <Window.Resources>
    <src:CensusData x:Key="censusData" />
    <charts:LineChartGenerator 
            x:Key="generator"
            ItemsSource="{Binding Source={StaticResource censusData}}"
            Width="300"
            Height="200">
        </charts:LineChartGenerator.VerticalAxis>
    </charts:LineChartGenerator>
</Window.Resources>

но я бы хотел привязать ширину и высоту к текущей ширине и высоте элемента управления. Не должно ли это быть:

 <charts:LineChartGenerator 
            x:Key="generator"
            ItemsSource="{Binding Source={StaticResource censusData}}"
            Width="{Binding ElementName=MyControl, Path=Width}"
            Height="200">

, но при этом возникает ошибка привязки: не удается найти управляющий FrameworkElement или FrameworkContentElement для целевого элемента. BindingExpression: Путь = Ширина; DataItem = NULL; Целевым элементом является LineChartGenerator (HashCode = 52313994); Целевое свойство - «Ширина» (тип «Двойной»)

Возможно ли это сделать? У меня есть различные ключи, но все они устанавливают ширину элемента управления равной ширине LineChartGenerator, что на самом деле не является желаемым эффектом!

Спасибо

Андрей

1 Ответ

1 голос
/ 12 декабря 2011

Я считаю, что поскольку свойство width у вас в теге Window.Resources, привязка ширины должна выглядеть примерно так ...

Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, 
    AncestorType={x:Type Window}}, Path=ActualWidth}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...