Я пытаюсь изменить шаблон данных кнопок из WPF XAML в код C# I.E. Я хочу создать кнопки программно в файле .cs.Изменить XAML на код C#
Часть 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 [email protected], Path=Value}" Margin="5" Padding="5" HorizontalContentAlignment="Center" Width="{Binding [email protected]}" Height="{Binding [email protected]}"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
Линия:
<Button Command="Open" Tag="{Binding [email protected], Path=Value}" Margin="5" Padding="5" HorizontalContentAlignment="Center" Width="{Binding [email protected]}" Height="{Binding [email protected]}"/>
где я связываю все кнопки в файл 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);
}
Возможно ли это?
Что именно не работает в нашем методе 'createButtons()'? В общем, все, что возможно в XAML, также возможно в коде C#. –
Почему вы хотите это сделать? что плохого в использовании XAML? –
Да, это возможно. Что вы пробовали? Если есть смысл в кодировании, что вы повесили трубку, спросите об этом. Если вам нужно что-то начать, посмотрите на 'buttons.ItemContainerStyle' и' buttons.ItemsPanel', посмотрите их типы и оттуда. Для меня это не слишком важно, почему вы хотите сделать это в первую очередь. Если вы объясните, почему вы хотите это сделать, кто-то может предложить лучший подход. –