2016-03-27 18 views
0

Kodda belirleyeceğim kadar çok kopyalamak istediğim bir örnek kontrol oluşturdum. Tüm <ToggleButton> denetimini çoğaltmak istiyorum.WPF kopyalama kontrolleri programatik olarak

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> 

Şimdi elle bir kez <ToggleButton> kopyalanan, ama sadece bir tane <ToggleButton> olurdu ve ben ... xaml kodunu kopyalamadan ikinci almak istiyorsanız

o mümkün mü kopyalama (kopya) <ToggleButton> kodu kullanarak kontrol?

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

mu 'reference' meselesi? –

+0

evet, önemlidir. @ FᴀʀʜᴀɴAɴᴀᴍ – armandasalmd

+0

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

cevap

0

Modeller:

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

Ve düğmede kodu nasıl çağırmalıyım? :) – armandasalmd

İlgili konular