XAML 数据触发器绑定

本文关键字:绑定 触发器 数据 XAML | 更新日期: 2024-09-08 04:47:32

我尝试应用具有类似绑定的数据触发器

<Style x:Key="ItemStyle" TargetType="{x:Type TabItem}">
        <Setter Property="Width" Value="293"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="TabItem">
                //...somes trigger...
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <DataTrigger  Binding="{Binding Path=isMaxOnglets}" Value="True">
                <Setter Property="Width" Value="100"/>
            </DataTrigger>
        </Style.Triggers>
</Style>

始终应用<Setter Property="Width" Value="293"/>而不是数据触发器,我有这个

mainModel.isMaxOnglets = true;

而这个

bool _isMaxOnglets;
    public bool isMaxOnglets
    {
        get
        {
            return _isMaxOnglets;
        }
        set
        {
            if (_isMaxOnglets != value)
                {
                    _isMaxOnglets = value;
                    RaisePropertyChanged("isMaxOnglets");
                }
            }
        }

问题:数据触发器从未应用过

XAML 数据触发器绑定

尝试使用 Ancestor Binding .

<Style.Triggers>
        <DataTrigger  Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabControl}}, Path=DataContext.isMaxOnglets}" Value="True">
            <Setter Property="Width" Value="100"/>
        </DataTrigger>
    </Style.Triggers>

如果mainModel DataContext TabControl.