У меня есть следующее DependencyProperty
:
public bool IterationSelected
{
get { return (bool)GetValue(IterationSelectedProperty); }
set { SetValue(IterationSelectedProperty, value); }
}
public static readonly DependencyProperty IterationSelectedProperty =
DependencyProperty.Register("IterationSelected", typeof(bool),
typeof(MainMediator), new UIPropertyMetadata(false));
(это было сгенерировано из шаблона VS)
У меня есть это DataTrigger
, которое обновляет его:
<Grid.Style>
<Style>
<Style.Triggers>
<DataTrigger Value="True">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource IsOpenFalseAndIsCheckedTrueMultiConverter}">
<Binding ElementName="popSelectIteration" Path="IsOpen"/>
<Binding ElementName="chkIteration" Path="IsChecked"/>
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="loc:MainMediator.IterationSelected" Value="True"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
Наконец, у меня есть Grid
, видимость которого зависит от свойства.
<Grid Visibility="{Binding IterationSelected, Converter={StaticResource BooleanToVisibilityConverter}, diagnostics:PresentationTraceSources.TraceLevel=High}" Grid.Row="1">
<TextBlock>Testing 1323</TextBlock>
</Grid>
Итак, вот проблема, которую я использовал: diagnostics:PresentationTraceSources.TraceLevel="High"
для проверки всех привязок, и все работает нормально, за исключением того, что, когда loc:MainMediator:IterationSelected
устанавливается в значение true, Grid
не срабатывает. Ничто не срабатывает вообще. Дело не в том, что оно не может связывать или что-то в этом роде. Просто даже не пытается. Единственный раз, когда срабатывает привязка Grid
, это запуск приложения. В этот момент он срабатывает и правильно оценивает.
Единственное, что я попробовал (и не смог), - это сделал IterationSelected
присоединенным свойством вместо простого свойства зависимости. Однако и это не удалось.
WPF Gurus, есть идеи?