我想动态地创建一个由几个BezierSegments组成的路径。是否有可能在Silverlight中仅使用数据绑定创建路径?
我想绑定数据,这样我的数据源只需要提供数字。 即应用程序不应在代码中创建任何几何对象。
这可能吗?
更新:
下面是固定数量的路径段的一个示例:
<Path Stroke="Black">
<Path.Data>
<PathGeometry>
<PathFigure StartPoint ="{Binding CalculatedPointA, Mode=OneWay}">
<LineSegment Point="{Binding CalculatedPointB, Mode=OneWay}" />
<LineSegment Point="{Binding CalculatedPointC, Mode=OneWay}" />
<LineSegment Point="{Binding CalculatedPointA, Mode=OneWay}" />
</PathFigure>
</PathGeometry>
</Path.Data>
</Path>
我想具有可变数量的段。
我在纯MVVM设置中工作,所以我尝试避免代码隐藏,并在ViewModels中动态创建FrameworkElements。 – 2011-03-28 13:21:14
@elggarc:我听到很多。 MVVM不能执行魔术,某个地方需要编写代码。您认为MVVM排除了代码的创建吗?如果是这样,你基于什么?我发现许多MVVM信条的追随者并没有正确理解其目标。在这种情况下,没有什么好的理由,基于MVVM的原因,为什么你不应该编写一些代码来交付你的应用程序的这个纯粹的可视化组件。这很方便,因为如果出于某种原因你会被一种不合法的方法所束缚,从而不得不做出必要的事情。 – AnthonyWJones 2011-03-29 08:15:35
视图中的代码不能进行单元测试,因此我们尽可能尝试将代码保留在视图模型中,并保留视图纯XAML。显然这并不总是可能的,我们在视图中确实有一些视图特定的代码,这是不可避免的。 – 2011-03-31 09:48:03