멀티 트리거가있는 Sourceame
-
06-07-2019 - |
문제
a를 사용할 수 있습니까? MultiTrigger
여러 요소의 속성을 평가하려면? 그것은 템플릿 내에 존재하지 않지만 Usercontrol/창 내에 있습니다.
예시:
<CheckBox x:Name="checkBox1" />
<CheckBox x:Name="checkBox2" />
<CustomControl>
<CustomControl.ContentTemplate>
<DataTemplate>
<DataTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition
SourceName="checkBox1"
Property="IsChecked"
Value="False" />
<Condition
SourceName="checkBox2"
Property="IsChecked"
Value="True" />
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter
Property="Visibility"
Value="Collapsed" />
</MultiTrigger.Setters>
</MultiTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</CustomControl.ContentTemplate>
정상으로 Trigger
Sourceame을 사용하여 해당 확인란 컨트롤 중 하나에서 속성을 트리거 할 수 있지만 MultiTrigger
컨트롤을 찾으려고 할 때 빌드 오류가 발생합니다.
참고 : 내가 사용하는 이유 DataTemplate
a Style
언급되어 있습니다 여기
해결책
실제로 소스 이름을 사용할 수 있지만 DataTemplate은 올바르게 정의되지 않은 것으로 보입니다. 작동하는 것처럼 보이는 예를 작성하려고했습니다.
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<Grid>
<Grid.Resources>
<DataTemplate DataType="{x:Type sys:String}">
<StackPanel>
<TextBlock x:Name="textBlock" Text="{Binding}"></TextBlock>
<CheckBox x:Name="checkBox1" />
<CheckBox x:Name="checkBox2" />
</StackPanel>
<DataTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition
SourceName="checkBox1"
Property="IsChecked"
Value="False" />
<Condition
SourceName="checkBox2"
Property="IsChecked"
Value="True" />
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter
TargetName="textBlock"
Property="Visibility"
Value="Collapsed" />
</MultiTrigger.Setters>
</MultiTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</Grid.Resources>
<ContentControl>
<sys:String>Foo</sys:String>
</ContentControl>
</Grid>
</Page>
문제는 확인란을 정의하지 않는 것 같습니다. 내부에 당신의 dataTemplate은 필요한 곳입니다.
제휴하지 않습니다 StackOverflow