ボタンのデータ テンプレートを WPF XAML から C# コード IE に変更しようとしています。ボタンをプログラムで .cs ファイルに作成したいと考えています。
XAML は次のようになります。
<ItemsControl DataContext="{Binding Source={StaticResource Things}}" ItemsSource="{Binding}" Name="buttons" Margin="0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<local:FishEyePanel ScaleToFit="false"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="{x:Type ContentPresenter}">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Button Command="Open" Tag="{Binding XPath=@Tag, Path=Value}" Margin="5" Padding="5" HorizontalContentAlignment="Center" Width="{Binding XPath=@Width}" Height="{Binding XPath=@Height}"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
この線:
<Button Command="Open" Tag="{Binding XPath=@Tag, Path=Value}" Margin="5" Padding="5" HorizontalContentAlignment="Center" Width="{Binding XPath=@Width}" Height="{Binding XPath=@Height}"/>
すべてのボタンをxmlファイルにバインドする場所です。ファイルは次のとおりです。
<XmlDataProvider x:Key="Things" XPath="Things/Thing">
<x:XData>
<Things xmlns="">
<Thing Button="uno1" Tag="abc" Width="200" Height="200"/>
</Things>
</x:XData>
</XmlDataProvider>
しかし、私が望むのは、事前定義されたすべてのボトムでxmlファイルを呼び出す代わりに、次のようなボタンでcsのメソッドを呼び出すことです:
public void createButtons()
{
Button button = new Button();
button.Tag = "I am from cs";
buttons.Items.Add(button);
}
これは可能ですか?