我找到了许多解决方案,但我正在努力将泛型class与user-control绑定在一起,在ViewModel .I中,我想让ComboBox与checkbox结合起来。此ComboBox将使用通用class,因此我可以在整个应用程序中重用此user-control。
我的问题是:如何将这个通用class与用于ComboBox的实际View.xaml文件绑定。
这是我的user-control
<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模型
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;
}
}
}发布于 2020-02-01 01:14:48
你的绑定都错了,它应该看起来像这样:
<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>https://stackoverflow.com/questions/60004632
复制相似问题