我正在尝试将按钮的数据模板从 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);
}
这可能吗?