繁体   English   中英

WPF DataTrigger无法在NotifyProperyChanged上触发?

[英]WPF DataTrigger not firing on NotifyProperyChanged?

我正在尝试根据绑定它的对象中的布尔标志动态隐藏ComboBox中的元素,但似乎无法使它正常工作

这是我XAML

<xctk:CheckComboBox Name="TagsDropDown" HorizontalAlignment="Left" Height="30" Margin="0,0,0,0" VerticalAlignment="Top" Width="450" IsEditable="True"  IsTextSearchEnabled="True" ItemsSource="{Binding AllTags}" ItemSelectionChanged="TagsDropDown_OnItemSelectionChanged">  
        <xctk:CheckComboBox.ItemTemplate>
            <DataTemplate>
                <Grid HorizontalAlignment="Stretch">
                    <TextBlock Margin="2" Text="{Binding Name}"/>
                    <TextBlock Margin="2" HorizontalAlignment="Right" Text="{Binding Count}"/>
                </Grid>
            </DataTemplate>              
        </xctk:CheckComboBox.ItemTemplate>
        <xctk:CheckComboBox.ItemContainerStyle>
            <Style TargetType="xctk:SelectorItem">
                <Setter Property="Visibility" Value="Visible"/>
                <Style.Triggers>
                 <!--   <DataTrigger steamTools:TriggerTracing.TriggerName="is zero" steamTools:TriggerTracing.TraceEnabled="True" Binding="{Binding Path=IsZero, RelativeSource={RelativeSource Self} }" Value="True">-->
                    <DataTrigger Binding="{Binding Path=IsZero, RelativeSource={RelativeSource Self} }" Value="True">
                        <DataTrigger.Setters>
                            <Setter Property="Visibility" Value="Collapsed"/>
                        </DataTrigger.Setters>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </xctk:CheckComboBox.ItemContainerStyle>
    </xctk:CheckComboBox>

和类绑定到控件

 public class CompTag : INotifyPropertyChanged
{
    private int _count;
    private bool _isZero;
    public string Name { get; set; }

    public bool IsZero
    {
        get { return _isZero; }
        set
        {
            if (_isZero != value)
            {
                _isZero = value;
                OnPropertyChanged("IsZero");
            }
        }
    }

    public int Count
    {
        get { return _count; }
        set
        {
            if (_count != value)
            {
                _count = value;
                OnPropertyChanged("Count");
            }
        }
    }

谁能看到我在做什么错?

提前致谢!

您的AllTags列表中是否有isZero成员?(在模型中)

如是

尝试这个

Binding="{Binding Path=IsZero, {RelativeSource FindAncestor, AncestorType={x:Type xctk:CheckComboBox}} }"

如果否,则在您的datacontext类中尝试删除RelativeSource={RelativeSource Self}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM