다음 DependencyProperty
있습니다 :wpf - 업데이트 된 종속성 속성이 바인딩을 시작하지 않음
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>
DataTrigger
그래서 여기에 문제가 있습니다. diagnostics:PresentationTraceSources.TraceLevel="High"
를 사용하여 모든 바인딩을 테스트하면 loc:MainMediator:IterationSelected
이 true로 설정되면 Grid
가 픽업되지 않습니다. 아무것도 발생하지 않습니다. 그것은 구속력이 없거나 그와 같은 것이 아닙니다. 그냥 시도조차하지 않습니다. Grid
바인딩이 실행되는 유일한 시간은 앱 시작 시점입니다. 그 시간에 정확하게 발사되고 평가됩니다.
IterationSelected
을 일반 종속성 속성 대신 첨부 된 속성으로 만들려고 시도한 유일한 방법은 (및 실패했습니다). 그러나 그 역시 실패했습니다.
WPF 전문가, 아이디어가 있습니까?