Pracuję nad aplikacją, w którym są wyświetlane 20 elementów graficznych przycisków w głównym oknie (od przyciski 1 do przycisku 20). Każdy element sterowania przyciskiem można wyświetlić wiersz zawartości i ma podpowiedź, wykonaną w następujący sposób :
<Button x:Name="button1" FontWeight="Bold" FontSize="15" Content="" HorizontalAlignment="Left" Margin="20,69,0,0" VerticalAlignment="Top" Width="92" Height="29" Click="Button_Click" Background="#FFFFFFFF" MouseEnter="button_MouseEnter">
<Button.ToolTip>
<Border Margin="-4,0,-4,-3" Padding="10" Background="Yellow">
<Border.BitmapEffect>
<OuterGlowBitmapEffect></OuterGlowBitmapEffect>
</Border.BitmapEffect>
<Label x:Name ="lbl1" FontSize="20" Content="{Binding Path=ToolTip}">
</Label>
</Border>
</Button.ToolTip>
<Button.Effect>
<DropShadowEffect/>
</Button.Effect>
</Button>
Chciałbym określić zawartość wiersz polecenia i wskazówki dla każdego przycisku w pliku XML, aby te informacje można było zmienić, modyfikując plik XML.
Do tego stworzyłem model prezentacji, która definiuje obiekt pod nazwą Bud (po francusku). :
public class Bouton : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
void Notify(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
int boutonNumber;
public int BoutonNumber{ get { return boutonNumber; } set { boutonNumber= value; Notify("BoutonNumber"); } }
string texteBouton;
public string TexteBouton { get { return texteBouton; } set { texteBouton = value; Notify("TexteBouton"); } }
string tooltip;
public string Tooltip { get { return tooltip; } set { tooltip = value; Notify("ToolTip"); } }
public Bouton(int nb, string tb, string tt)
{
BoutonNumber = nb;
TexteBouton = tb;
Tooltip = tt;
}
}
Podczas odczytu pliku XML tworzę 20 obiektów typu Pączek z informacją o numerze Pączka, Zawartości i podpowiedzi. Następnie wszystkie te obiekty Pączka są zapisywane w kolekcji list.
Teraz chcę użyć wiązanie danych pomiędzy moim listą Pączka i elementami graficznymi zarządzania w moim oknie głównym, aby móc wyświetlić wiersz zawartości i ciąg podpowiedzi na każdym przycisku. W głównym oknie użyłem następujący kod :
public MainWindow()
{
InitializeComponent();
List<Bouton> lst = Utilities.CreateList();
this.DataContext = lst;
}
gdzie lst-to dobrze инициализированная kolekcja list.
Ale nie wiem, jak zmusić wiązanie danych praca z elementami sterowania przyciskami. Jak mogę poprawnie połączyć każdy z 20 elementów sterowania przyciskami z odpowiednim obiektem Pączka (zawartych w kolekcji Pąków) ? Mam na myśli, jako element zarządzania Button1 może dostać swoje wiersze z mojego obiektu Bouton1, formant Button2 może dostać swój wiersz z obiektu Bouton2 i tak dalej, aż element zarządzania Button20 i obiekt Bouton20 nie pojawią się ?
Dziękuję ci za pomoc. Proszę zwrócić uwagę, że jestem początkujący w WPF, i jest to mój pierwszy projekt WPF z Visual Studio.