首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用泛型类创建带有checkbox的WPF组合框用户控件

使用泛型类创建带有checkbox的WPF组合框用户控件
EN

Stack Overflow用户
提问于 2020-01-31 21:11:07
回答 1查看 82关注 0票数 0

我找到了许多解决方案,但我正在努力将泛型classuser-control绑定在一起,在ViewModel .I中,我想让ComboBoxcheckbox结合起来。此ComboBox将使用通用class,因此我可以在整个应用程序中重用此user-control

我的问题是:如何将这个通用class与用于ComboBox的实际View.xaml文件绑定。

这是我的user-control

代码语言:javascript
复制
<base:CheckedComboBox>
    <ComboBox.Resources>
        <Style TargetType="ComboBoxItem">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ComboBoxItem">
                        <base:BaseCheckBox HorizontalAlignment="Center" Content="{Binding FilterDropDownItemModel.Title}" ToolTip="{Binding FilterDropDownItemModel.ToolTip}" IsChecked="{Binding FilterDropDownItemModel.IsSelected,UpdateSourceTrigger=PropertyChanged}">
                        </base:BaseCheckBox>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ComboBox.Resources>

</base:CheckedComboBox>

这是我的通用class模型

代码语言:javascript
复制
public abstract class DropDownModel<T> : BaseModel
{
    private T _mysummary;
    public T MySummary
    {
        get { return _mysummary; }
        set
        {
            _mysummary = value;
            RaisePropertyChanged();
        }
    }

    private bool _isSelected;
    public bool IsSelected
    {
        get { return _isSelected; }
        set
        {
            if (_isSelected != value)
            {
                _isSelected = value;
                RaisePropertyChanged();
            }
        }
    }

    /// <summary>
    /// Title
    /// </summary>
    public abstract string Title
    {
        get;
    }

    public abstract string ToolTip
    {
        get;
    }
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-01 01:14:48

你的绑定都错了,它应该看起来像这样:

代码语言:javascript
复制
    <Style TargetType="ComboBoxItem">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ComboBoxItem">
                    <base:BaseCheckBox HorizontalAlignment="Center" 
                                       Content="{Binding RelativeSource={RelativeSource Mode=Self}, Path=DataContext.FilterDropDownItemModel.Title}" ToolTip="{Binding RelativeSource={RelativeSource Mode=Self}, Path=DataContext.FilterDropDownItemModel.ToolTip}" IsChecked="{Binding RelativeSource={RelativeSource Mode=Self}, Path=DataContext.FilterDropDownItemModel.IsSelected}">
                </base:BaseCheckBox>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60004632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档