Ja som pracoval na aplikáciu ukazuje 20 grafické tlačidlá, ovládacie prvky v MainWindow (Button1 na Button20). Každé tlačidlo control môžete zobraziť Obsah reťazec, a má tooltip navrhnuté nasledovne :
<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>
Ja by som chcel definovať reťazec obsah a tooltip reťazec pre každé tlačidlo v XML súboru, takže tieto informácie môžu sa zmeniť úpravou XML súboru.
Na to, vytvoril som ViewModel definovanie objektu s názvom Bouton (vo francúzštine) :
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;
}
}
Pri čítaní súboru XML, som vytvoriť 20 objekty Bouton typu s informáciami o boutonNumber, Obsah a Rade. Potom všetky tieto Bouton objekty sú uložené do Zoznamu zbierky.
Teraz chcem použiť DataBinding medzi moje Bouton zoznam a grafické prvky na mojom MainWindow byť schopný zobraziť obsah reťazec a tooltip reťazec na každé tlačidlo. V MainWindow, som použil nasledovný kód :
public MainWindow()
{
InitializeComponent();
List<Bouton> lst = Utilities.CreateList();
this.DataContext = lst;
}
kde lst je Zoznam zber správne inicializovať.
Ale neviem, ako urobiť databinding práce na Tlačidlo ovládacie prvky. Ako môžem, aby každý z 20 Tlačidlo ovládacie prvky správne odkaz na príslušné Bouton objektov, ktoré sú obsiahnuté v Boutons zber) ? Chcem povedať, ako môže Button1 kontrolu si svoje struny z môjho Bouton1 objekt, Button2 kontrolu si svoje reťazec z Bouton2 objekt a tak ďalej, až kým Button20 kontroly a Bouton20 objekt ?
Ďakujeme vám za vašu pomoc. Vezmite prosím na vedomie, som začiatočník s WPF a toto je môj prvý WPF projektu s Visual Studio.