因此,我想将列表中列表中的类的2个属性绑定到WPF程序中动态生成的Button的内容。
到目前为止,这是我将动态生成的按钮绑定为2D网格的XAML
<Window.Resources>
<DataTemplate x:Key="DataTemplate_Level2">
<Button Height="35" Width="35" Margin="-1,-1,-1,-1" IsEnabled="{Binding}" x:Name="fieldButton" Click="fieldClick" Content="{Binding}"/>
</DataTemplate>
<DataTemplate x:Key="DataTemplate_Level1">
<ItemsControl ItemsSource="{Binding}" ItemTemplate="{DynamicResource DataTemplate_Level2}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</DataTemplate>
</Window.Resources>
<Grid>
<ItemsControl x:Name="lst" ItemTemplate="{DynamicResource DataTemplate_Level1}" Margin="0,0,339,0">
</ItemsControl>
</Grid>
这是创建网格并使用正确的值填充该类的属性的类
class Grid {
private const int SIZE = 10;
private List<List<Field>> fields;
public Grid() {
fields=new List<List<Field>>();
for(int i = 0; i < SIZE; i++) {
fields.Add(new List<Field>());
for(int j = 0; j < SIZE; j++) {
fields[i].Add(new Field(i, j));
}
}
}
public List<List<Field>> getFields() {
return fields;
}
}
这是具有填充属性的类
class Field {
private int x;
private int y;
public Field(int x,int y) {
this.x = x;
this.y = y;
}
}
当前,网格为每个按钮显示“ .Field”作为内容。我希望它是“ x,y”。
非常感谢您的帮助。
答案 0 :(得分:3)
您只需要在字段 ToString()
中添加class
覆盖,即可在Content
中显示更有趣的内容。