У меня есть следующий фрагмент кода, чтобы включить привязку для условия MultiDataTrigger.
<StackPanel Grid.Column="2">
<Expander IsExpanded="True" x:Name="test1">
<TextBlock Text="In Expander test1" />
</Expander>
<StackPanel Orientation="Vertical" VerticalAlignment="Top">
<views:BarPartDefView x:Name="Exp11" DataContext="{Binding CurrentPartVM}" />
</StackPanel>
<GridSplitter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="4" >
<GridSplitter.Style>
<Style TargetType="GridSplitter">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=test1, Path=IsExpanded}" Value="True" />
<Condition Binding="{Binding ElementName=Exp11, Path=IsExpanded}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Visibility" Value="Visible" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</GridSplitter.Style>
</GridSplitter>
</StackPanel>
У меня есть следующий фрагмент кода в другом файле XAML.
<UserControl.Style>
<Style TargetType="local:BarPartDefView">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=Exp1, Path=IsExpanded}" Value="False"/>
</MultiDataTrigger.Conditions>
<Setter Property="IsExpanded" Value="False"/>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</UserControl.Style>
<StackPanel>
<Expander IsExpanded="False" x:Name="Exp2">
<TextBlock Text="In Expander part 1 " />
</Expander>
<Expander IsExpanded="False" x:Name="Exp1">
<TextBlock Text="In Expander part 2" />
</Expander>
</StackPanel>
IЯ создал свойство зависимости для класса BarPartDefView.
public static DependencyProperty IsExpandedProperty = DependencyProperty.Register(
"IsExpanded",
typeof(Boolean),
typeof(BarPartDefView),
new FrameworkPropertyMetadata {
BindsTwoWayByDefault = false,
DefaultValue = true,
DefaultUpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged,
PropertyChangedCallback = (sender, e) => {
var i = 0;
}});
public bool IsExpanded
{
get { return (bool)GetValue(IsExpandedProperty); }
set { SetValue(IsExpandedProperty, value); }
}
Я не могу связать второе условие MultiDataTrigger
, равное
<Condition Binding="{Binding ElementName=Exp11, Path=IsExpanded}" Value="True" />
Я нашел решение в Интернете, но онопривязывает только имя элемента в том же пользовательском элементе управления.Я хочу привязать имя элемента в другом пользовательском элементе управления.Как я могу это сделать.Возможно ли иметь такую привязку?Так как я относительно новичок в wpf, я изучаю все возможные способы сделать это.было бы очень полезно, если бы вы могли мне помочь.