具有 MVVM 模式的视图的特定模型?

Specific model for the view with MVVM pattern?

假设我想创建一个 WPF 窗体。 在这种形式中,有一堆标题和副标题。 论文标题和副标题使用相同的控件进行呈现。 此控件只是顶部分隔符和底部分隔符之间的标签。 标题必须有两个分隔符,副标题必须只有底部分隔符。 此控件中有一个布尔依赖属性。如果设置为真,则有一个顶部分隔符。

是否可以在模型中为每个 title/subtitle 绑定此属性?

public class MyModelObject : ViewModelBase
{
    private string _labelName;
    public string LabelName 
    {
        get
        {
         return _labelName;
        }
        set
        {
            _labelName=value;
            RaisePropertieChanged(()=>LabelName);
        }
    }

    private bool _topSeparator;
    public bool TopSeparator 
    {
        get
        {
         return _topSeparator;
        }
        set
        {
            _topSeparator=value;
            RaisePropertieChanged(()=>TopSeparator);
        }
    }
}

我不太喜欢...因为模型应该没有关于视图的信息。但是有没有一种干净的方法来做到这一点?

我正在考虑视图的特定模型...但我不确定。

提前致谢!

----------------更新----------------

在按照 Vadim Martynov 的建议查看 IValueConverter 之后,我看到一些人包装他们的模型来处理这些情况。 所以这是我的结论:

我说得对吗?

您应该使用 IValueConverter 来绑定您的实际数据,而不是为视图创建合成属性。

例如,您可以拥有包含 TitleSubtitleText 元素的 TitleType 枚举。

然后编写新的转换器:

public class TitleTypeToSeparatorVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var titleType = (TitleType) value;
        switch(titleType)
        {
            case TitleType.Title:
                // return some value
            case TitleType.Subtitle:
                // return some another one value
            default:
                // handle this scenario
        }
    }
}

Read more about IValueConverter