سؤال

I am working on a project in WPF and I have a very strange case concerning my converters on a certain element.

In the following snippet:

<myCtl:Pager IsTabStop="False" Style="{StaticResource MainPager}"
                DataContext="{Binding CurrentView, Converter={StaticResource SectionToPagerDriver}}"
                Visibility="{Binding CurrentView, Converter={StaticResource SectionToVisibility}}"/>

The converter for 'DataContext' will fire, but the converter for 'Visibility' will not. This seems odd to me considering that they are both bound to 'CurrentView' which indeed changes. I have even tried setting the binding mode explicitly to 'TwoWay' but this does nothing to resolve the issue.

Does anyone have a clue why one binding would fire, and the other would not ?

هل كانت مفيدة؟

المحلول

When you set the DataContext on your Control, all other bindings will use the new object as their source.

If you check your output window, you'll see a binding error saying that there is no CurrentView property on whatever object is returned by that property.

Instead, you should just do:

<myCtl:Pager IsTabStop="False" Style="{StaticResource MainPager}"
             DataContext="{Binding CurrentView, Converter={StaticResource SectionToPagerDriver}}"
             Visibility="{Binding Converter={StaticResource SectionToVisibility}}"/>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top