c# - 如何在 MVVM 模式 wpf 中绑定(bind) StrokeDashArray 属性

标签 c# wpf xaml mvvm

我有 WPF 应用程序,我在一个 Canvas 中有一些线需要是虚线,而一些需要是普通线。我的问题是 StrokeDashArray 到底是什么类型。在 msdn 中,我看到使用的是 DoubleCollection,但来自 System.Windows.Media。
如何使 StrokeDashArray 的属性在 MVVM 模式中使用良好的实践。

最佳答案

如果你想绑定(bind)到 dash 数组,那么它就是一个 DoubleCollection,所以你可以这样做:

    private DoubleCollection _Dashes = new DoubleCollection { 1, 2 };
    public DoubleCollection Dashes
    {
        get { return this._Dashes;}
        set { this._Dashes = value; RaisePropertyChanged(); }
    }

然后在 XAML 中:
    <Line Stroke="Black" StrokeThickness="2" StrokeDashArray="{Binding Dashes}" X1="0" Y1="50" X2="100" Y2="50"/>

如果要创建 Canvas 元素的动态数组,则需要创建 ItemsControl 并将 ItemsControl.Panel 设置为 Canvas。然后,您通常会使用 Item.Template 来声明每个元素的线条以及使用数据触发器在不同线条/破折号类型之间进行选择的样式。

关于c# - 如何在 MVVM 模式 wpf 中绑定(bind) StrokeDashArray 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34848935/

相关文章:

XAML ComboBox SelectionChanged触发OnLoad

c# - 需要帮助在 C# 中同步控制事件处理程序

c# - Visual Studio 2012 无法识别可空类型

wpf - Silverlight 3 绑定(bind)到集合中的当前项

c# WPF 过滤控件列表

c# - ICollectionView 的过滤问题

c# - 解决缺少带有约束的部分泛型类型推断

c# - 部署 roslyn 应用程序

c# - 在 C# WPF 中创建索引

c# - ScrollViewer 鼠标滚轮不滚动