我試圖創建一個顯示兩個垂直「泳道」(左和右)的WPF控件。 Left和Right都應該綁定到ViewModel中的兩個單獨的ObservableCollection。 ISkill有一個Name屬性和一個可選的SynchronizedWith屬性,它基本上是對另一個ISkill對象的引用(在相反的集合中)。項目控件中的項目位置同步
這兩個泳道可以看作是普通的垂直StackPanels,但是所有與另一個ISkill對象同步的ISkill對象應該始終垂直對齊(這意味着在某些地方會有空的空間)。同步的智齒應該在兩條不同的泳道之間有一條連線。所附的圖片可能會更好地瞭解我正在努力完成的任務。
下面是ISkill接口。
public interface ISkill
{
string Name { get; set; }
ISkill SynchronizedWith { get; set; }
}
我有一個想法是綁定左和右兩個ItemsControls和使用網格作爲佈局面板。但我不確定佈局傳遞應該如何確定集合中每個項目應具有哪個Grid.Row-index。
所有的建議非常感謝,謝謝!
IMO它會更容易也有ISkill接口,其在用作一個ItemsControl的ItemsPanel畫布供應垂直位置(直接地或通過轉換的結合轉換器)上的雙'屬性Level'。 – Clemens 2015-02-10 10:46:07
兩邊應始終對齊,例如一起滾動? – igorushi 2015-02-10 11:40:46
我同意克萊門斯。在將所有約束應用於兩組之後,可以計算'等級'。每個約束也可以是數據項目,並映射到可視化。 – Nzc 2015-02-10 11:47:02