ฉันทำงานบนโปรแกรมแสดง 20 กราฟิปุ่มควบคุมในหน้าต่างหลัก(Button1 จะ Button20). แต่ละปุ่มควบคุมสามารถแสดงเนื้อหาข้อความและจะมีกล่องผุกออกแบบเป็นตาม:
<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>
ฉันต้องการจะกำหนดข้อความเนื้อหาและข้อความบนทูลทิปสำหรับแต่ละปุ่มในแฟ้ม XML ดังนั้นข้อมูลนี้จะถูกเปลี่ยนแปลงโดยรุงภาพลักษณ์ที่สมบูรณ์ที่แฟ้ม XML.
สำหรับเรื่องนี้ฉันสร้าง ViewModel defining เป็นสิ่งเรียก Bouton(ภาษาฝรั่งเศส):
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;
}
}
เมื่อการอ่านแฟ้ม XML,ฉันสร้าง 20 วัตถุของ Bouton ประเภทนกับข้อมูลเกี่ยวกับ boutonNumber,เนื้อหาและทูลทิป. งั้นทั้งหมดนี้ Bouton วัตถุงจะถูกจัดเก็บไว้ในรายชื่อคนจะได้ปลอดภัย
ตอนนี้ฉันต้องการใช้ DataBinding ระหว่างของฉัน Bouton รายชื่อและกราฟิควบคุมของหน้าต่างหลักที่จะแสดงเนื้อหาข้อความและข้อความบนทูลทิปในแต่ละปุ่ม. อยู่ในหน้าต่างหลักฉันใช้ติดตามรหัส:
public MainWindow()
{
InitializeComponent();
List<Bouton> lst = Utilities.CreateList();
this.DataContext = lst;
}
อยู่ไหน lst คือรายการชุดสะสมอย่างถูกต้องสามารถใช้ถอ.
แต่ฉันไม่รู้วิธีที่จะทำให้ค databinding ทำงานบนปุ่มควบคุม ผมต้องทำยังไงให้แต่ละ 20 ปุ่มควบคุมอย่างถูกต้องเชื่อมโยงไปยังที่สัมพันธ์กัน Bouton ธ(บรรจุอยู่ใน Boutons คลังภาพ)? ฉันหมายถึงได้ยังไง Button1 ควบคุมให้มันใช้เส้นสายออกจาก Bouton1 สิ่งที่ Button2 ควบคุมจังข้อความจาก Bouton2 สิ่งและดังนั้นอยู่จนกว่า Button20 ควบคุมและ Bouton20 วัตถุ?
ขอบคุณสำหรับความช่วยเหลือ โปรดจำไว้ฉันเป็นเชิดแพลตตินั่มทั้งหมดไปใช่กับ WPF และนี่คือคนแรกของฉั WPF กับโครงการมองเห็นสตูดิโอ