У меня есть следующее 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, есть идеи?