Привязка данных WPF свойства Width - PullRequest
0 голосов
/ 11 мая 2011

Я пытаюсь привязать свойство Width Canvas к свойству Width экземпляра Shape. Таким образом, ширина формы должна обновляться, когда ширина холста получает новое значение

Я хочу сделать это в коде без XAML, потому что я создаю эти элементы во время выполнения.

Я попробовал это, но это не сработало (код находится внутри моего Canvas):

Binding binding = new Binding();
binding.Mode = BindingMode.OneTime;
binding.Source = this;
binding.Path = new PropertyPath("Width");
shape.SetBinding(FrameworkElement.WidthProperty, binding);

Большое спасибо за вашу помощь!

ksman

Ответы [ 2 ]

2 голосов
/ 11 мая 2011

OneTime выглядит неправильно.Я думаю, что вы хотите использовать OneWay или TwoWay.Проверьте BindingModes

Редактировать

Поскольку OneWay и ActualWidth не устранили вашу проблему, я рекомендую вам использовать инструментдля отладки привязок.Я использую Snoop , потому что это бесплатно, но есть и другие.Отладка WPF без такого инструмента может быть болезненной.

1 голос
/ 11 мая 2011

Вы, вероятно, хотите связать с ActualWidth, а не Width.

Width - это вход в процесс макета - это то, что вы можете (но ненеобходимо) указать.

ActualWidth - это вывод процесса макета - это фактическая ширина, которую вы видите на экране.Это частично определяется Width, если он присутствует, но другие факторы также влияют на это (особенно если вы явно не указали Width в своем XAML).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...