После нескольких часов поисков я пришел за помощью:Dependency Property и Binding Error
System.Windows.Data Error: 40 : BindingExpression path error: 'Test' property not found on 'object'
не удалось найти, где моя ошибка связывания была ...
В моей MainWindow у меня есть:
<Exec:PriceView Price="{Binding Test}"/>
<TextBlock Text="{Binding Test}"/>
На моем текстовом блоке свойство Binding with Test отлично работает.
Но для моего управления PriceView это не так.
PriceView.xaml
<StackPanel>
<TextBlock Text="{Binding Price}" FontSize="26" FontFamily="Arial"/>
</StackPanel>
PriceView.xaml.cs
public partial class PriceView : UserControl
{
public PriceView()
{
this.InitializeComponent();
this.DataContext = this;
}
#region Dependency Property
public static readonly DependencyProperty PriceProperty = DependencyProperty.Register("Price", typeof(float), typeof(PriceView));
public float Price
{
get { return (float)GetValue(PriceProperty); }
set { SetValue(PriceProperty, value); }
}
#endregion
}
Что я делаю неправильно? Является ли это исходящим из моей Dependency Properrty?
Исправление: никогда не устанавливайте DataContext представления при использовании свойств зависимостей. – Xcalibur37
Почему бы и нет? Я успешно использовал оба одновременно. Вам нужно только понять, что когда вы устанавливаете DataContext, ваши другие привязки на одном уровне используют один и тот же контекст, если вы не укажете другой источник с использованием RelativeSource или ElementName. – surfen