2016-03-27 77 views
0

我创建了一个示例控件,我想复制许多次,我将在代码中设置许多次。我想复制整个<ToggleButton>控制。以编程方式WPF复制控件

XAML:

<WrapPanel Name="varom"> 
      <ToggleButton Margin="10"> 
       <StackPanel Orientation="Horizontal"> 
        <Label Content="Stop sign" /> 
        <Image Width="16" Source="{Binding appbar_stop}" /> 
       </StackPanel> 
      </ToggleButton> 

      <ToggleButton Margin="10"> 
       <StackPanel Orientation="Horizontal"> 
        <Label Content="Stop sign" /> 
        <Image Width="16" Source="{Binding appbar_stop}" /> 
       </StackPanel> 
      </ToggleButton> 

     </WrapPanel> 

现在我复制一个时间<ToggleButton>手动,但如果我只有一个<ToggleButton>,我想获得第二不复制XAML代码...

是否有可能复制(复制)<ToggleButton>使用代码控制?

C#:

namespace WpfApplication3 
{ 
    public partial class MainWindow : MetroWindow 
    { 
     public const int maxButtons = 4; // number of copies for example 

     public MainWindow() 
     { 
      InitializeComponent(); 
      // code add here for example :) 
     } 

    } 
} 
+0

是否'reference'事? –

+0

是的,它很重要@FᴀʀʜᴀɴAɴᴀᴍ – armandasalmd

+0

http://stackoverflow.com/questions/3191232/copy-a-wpf-control-programmatically –

回答

0

型号:

public class ButtonViewModel 
{ 
    public string Caption { get; set; } 
} 

public class ViewModel 
{ 
    public ViewModel() 
    { 
     Buttons = new ObservableCollection<ButtonViewModel> 
     { 
      new ButtonViewModel { Caption = "Button 1" }, 
      new ButtonViewModel { Caption = "Button 2" }, 
      new ButtonViewModel { Caption = "Button 3" }, 
     }; 
    } 

    public ObservableCollection<ButtonViewModel> Buttons { get; } 
} 

XAML:

<ItemsControl ItemsSource="{Binding Buttons}" > 
    <ItemsControl.ItemsPanel> 
    <ItemsPanelTemplate> 
     <WrapPanel Orientation="Horizontal"/> 
    </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemTemplate> 
    <DataTemplate> 
     <ToggleButton Margin="10"> 
     <StackPanel Orientation="Horizontal"> 
      <Label Content="{Binding Caption}" /> 
      <Image Width="16"/> 
     </StackPanel> 
     </ToggleButton> 
    </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 
+0

而我应该如何在代码中调用按钮? :) – armandasalmd