我想動態地創建一個由幾個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