2012-05-27 161 views
0

我想製作一個按鈕平板電腦,它由1個10個按鈕組成。WPF按鈕網格

現在我有一個網格,其中有行和列,可以說2列,5行, 但這不是很dymamical。

我有一些xml源,它指定網格中哪些按鈕和多少按鈕,它們應該如何看起來像行,列位置。

如何動態地在位置插入按鈕?

在TabletViewModel我有ButtonViewModels 的集合,它是在DataContext爲TabletView(網格)

的ButtonViewModel保持按鈕 的文本,圖像文件名,行和列,並且是一個Button的DataContext。

我想到了像itemsource Binding這樣的東西,但我想不出 如何做到這一點用網格和按鈕綁定。 (Dynamic GridView?)

我該怎麼做?任何想法讚賞!

回答

1

或許可以考慮使用的ItemsControl與WrapPanel

<ItemsControl> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <WrapPanel /> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
</ItemsControl> 
+0

謝謝,我現在使用WrapPanel方法 –

0

試試這個

(assuming x:Name="myGrid" in markup) 

// add rows to grid (it's the same deal for columns too) 
for (int row=0;row < numRows; row++) 
{ 
myGrid=RowDefinitions.Add(new RowDefinition()); 
} 

(I'd be interested to see if there is a slicker way of doing this bit.) 


// Stick a control in intended location 

b = new Button(); 

myGrid.Children.Add(b); 
Grid.SetRow(b,1); // 2nd row 
Grid.SetColumn(b,3); // 4th column 
Grid.SetColumnSpan(b,2); 
+0

謝謝!但是,我沒有辦法使用Bindings,即我想將網格綁定到我的TabletViewModel以完成此操作。我想要將每個按鈕的頂部ViewModel發佈的ICommand綁定爲Click Handler。它獲取一個ButtonViewModel作爲上下文,用於處理ClickEvent。 –