I'm banging my head on my desk with this binding error.. I have checked several of the postings for the BindingExpression
path error and cannot see anything that works with my situation.
Anyway, I have a custom control called IncrementingTextBox
. I am trying to disable it whenever the user 'checks' the CheckBox
above it.
I have a binding on the CheckBox
IsChecked
property that is working fine and is firing when it is supposed to. It is correctly setting the UseSensorLength
property on the ConfigurationModel.
However, the binding on the IncrementingTextBox
IsEnabled
property is causing a BindingExpression
path error and so doesn't update at all.
As a test, I tried in the code behind to enable and disable the control and it works just fine, but I can't seem to get the Binding to work on it.
Here is a snippet from my xaml:
...
DataContext="{Binding RelativeSource={RelativeSource Self}}"
...
...
<CheckBox Content="Use Sensor Length" Margin="30,6,0,0"
IsChecked="{Binding ConfigurationModel.UseSensorLength, Mode=TwoWay}"/>
<local:IncrementingTextBox x:Name="video_length_textbox" Margin="0,0,0,5"
IsTextEnabled="False"
IsEnabled="{Binding ConfigurationModel.DontUseSensorLength}"
ValueChanged="VideoEventValueChanged"/>
And Here is a snippet from my ConfigurationModel:
public bool DontUseSensorLength
{
get { return !UseSensorLength; }
}
public bool UseSensorLength
{
get { return _useSensorLength; }
set
{
_useSensorLength = value;
OnPropertyChanged("UseSensorLength");
OnPropertyChanged("DontUseSensorLength");
}
}
Here is the error message I am getting in my output window when running the app:
System.Windows.Data Error: 40 : BindingExpression path error: 'ConfigurationModel' property not found on 'object' ''IncrementingTextBox' (Name='video_length_textbox')'. BindingExpression:Path=ConfigurationModel.DontUseSensorLength; DataItem='IncrementingTextBox' (Name='video_length_textbox'); target element is 'IncrementingTextBox' (Name='video_length_textbox'); target property is 'IsEnabled' (type 'Boolean')
Remember, the 'UseSensorLength' property binding is working fine, but the 'DontUseSensorLength' binding is causing the above 'BindingExpression path error'.
IncrementingTextBox
's DataContext for theConfigurationModel.DontUseSensorLength
value. You have to use aRelativeSource
similar to this. – Bob.