Вы пытаетесь использовать WPF, как если бы это были WinForms. Это, как вы бы выполнить ваши требования в WPF ... сначала создать DependencyProperty
коллекцию в вашем Window
коде позади и заполнить его с текстовыми записями:
public static DependencyProperty ItemsProperty = DependencyProperty.Register("Items", typeof(ObservableCollection<string>), typeof(YourWindowOrUserControl));
public ObservableCollection<string> Items
{
get { return (ObservableCollection<string>)GetValue(ItemsProperty); }
set { SetValue(ItemsProperty, value); }
}
...
Items = new ObservableCollection<string>(File.ReadLines(@"bookmarks.txt"));
Тогда вы просто данные связать коллекцию ToolBar.ItemsSource
собственности и объявить DataTemplate
, чтобы определить, что каждый string
должен выглядеть ... в вашем случае, мы установим его как текст в Button
:
<ToolBar ItemsSource="{Binding Items}">
<ToolBar.ItemTemplate>
<DataTemplate>
<Button Content="{Binding}" Margin="1,0,0,0" />
</DataTemplate>
</ToolBar.ItemTemplate>
</ToolBar>
конечно, вам нужно установить Window.DataContext
к класс с вашим pr Свойства ... самый простой способ, чтобы установить его в коде позади конструктора, как это:
public YourWindowOrUserControl
{
InitializeComponent();
DataContext = this;
}
Вам сусло прочитать о том, как установить DataContext
правильно, хотя, как установить его так легко, но не обязательно правильно.
Наконец, вы можете создать класс со всеми необходимыми свойствами для Button
... Например, можно добавить свойство с именем Text
, а другой называется Command
, а затем сделать ваше Items
свойство коллекция из них. Тогда вы можете привязать данные к этому следующим образом:
<ToolBar ItemsSource="{Binding Items}">
<ToolBar.ItemTemplate>
<DataTemplate>
<Button Content="{Binding Text}" Command="{Binding Command}" Margin="1,0,0,0" />
</DataTemplate>
</ToolBar.ItemTemplate>
</ToolBar>
Вы спрашиваете, как читать текстовый файл, а ваш образец кода - обработчик события для кнопки. Укажите код, который читает файл. –
Да, я хочу, чтобы созданные кнопки использовали этот обработчик событий. Я обновил код, который читал файл. – proah
@MarioStoilov Обновлено еще раз с моим прогрессом. – proah