it seems that I have a problem with my multibinding.
Scenario:
I have a window with two datepickers and a listview.
The listliew contains some data bound elements called “entries”. An entry has a property called “date”.
I just want my listview to show entries whose date is in between my two datepickes dates.
My xaml code for binding the listview to the entries and dates:
<ListView.ItemsSource>
<MultiBinding Converter="{StaticResource EntriesFilterConv}"
UpdateSourceTrigger="PropertyChanged">
<Binding Path="Entries" UpdateSourceTrigger="PropertyChanged"/>
<Binding ElementName="EntryFromDate" Path="SelectedDate"
UpdateSourceTrigger="PropertyChanged"/>
<Binding ElementName="EntryToDate" Path="SelectedDate"
UpdateSourceTrigger="PropertyChanged"/>
</MultiBinding>
</ListView.ItemsSource>
However, this doesnt work. My converter is called when a SelectedDate changes but its never called when Entries changes.
With normal data binding like this:
<ListView ItemsSource="{Binding Entries}">
...
</ListView>
The listview updates normally.
Any idea?
I think the following might cause this: If you bind directly to the
Entriesthe ListView will listen toCollectionChangedevents, but if such a binding is inside aMultiBindingthe only thing that would cause a reevaluation could be aPropertyChangednotification, which might not exist for the Entries property in your model.Maybe you can subscribe to the
CollectionChangedevent of your collection and raise aPropertyChangedevent or get theBindingExpressionwithin yourMultiBindingto call an update manually.