2016-03-27 5 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> 

は、今私は手動で1時間<ToggleButton>をコピーしたが、私はちょうど1 <ToggleButton>を持っているでしょうし、私はXAMLコードをコピーすることなく、第2取得したい場合コードを使用して<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

関連する問題