I am trying to bind a property that is dependent on a control within the same DataTemplate
.
To illustrate:
<DataTemplate> <StackPanel Orientation="Horizontal"> <ComboBox x:Name="ComboList" ItemsSource="{Binding StatTypes}" SelectedItem="{Binding SelectedStatType, Mode=TwoWay, FallbackValue='Select a type'}"> <ComboBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Text}"/> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox> <TextBox Grid.Column="1" MinWidth="40" Margin="5"> <TextBox.Text> <Binding Path="StatValue"> <Binding.Converter> <converter:PercentageConverter SelectedStatType="{Binding ElementName=ComboList, Path=SelectedItem}" /> </Binding.Converter> </Binding> </TextBox.Text> </TextBox> </StackPanel> </DataTemplate>
But the property in the PercentageConverter
is never set through this and I don't see why. Is this a naming scope issue? If so, I thought this would not matter since it is in the same DataTemplate
If not, what am I doing wrong?
This is probably a namescope issue, the binding is not a framework element, any objects inside it will not share the outside namescope, nor is the binding in any tree, so relative source bindings should fail as well.
You can try using x:Reference
instead, it uses a different mechanism:
{Binding SelectedItem, Source={x:Reference ComboList}}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With