Я нашел несколько вопросов, которые пошли в том же направлении, но я мог найти те, которые непосредственно вписывались в мою проблему.
У меня есть список в списке, содержащий двумерный массив кнопок.Теперь я хочу связать состояние «IsEnabled» со свойством класса.«Тег» уже заполняется правильными значениями объектов этого класса, но «IsEnabled» не будет работать, что бы я ни пытался.
Вот мой XAML для шаблона данных, который я использую:
<DataTemplate x:Key="DataTemplate_Level2">
<Button Height="35" Width="35" Margin="-1,-1,-1,-1" IsEnabled="{Binding hit}" x:Name="fieldButton" Click="fieldClick" Tag="{Binding}" Style="{StaticResource ButtonStyle1}"/>
</DataTemplate>
<DataTemplate x:Key="DataTemplate_Level1">
<ItemsControl ItemsSource="{Binding}" ItemTemplate="{DynamicResource DataTemplate_Level2}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</DataTemplate>
Вот код, который заполняет списки:
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));
}
}
Это класс, который я хочу, чтобы свойство "hit" связывалось с "IsEnabled": private int x;private int y;
public Boolean hit;
public int X { get => this.x; set => this.x = value; }
public int Y { get => this.y; set => this.y = value; }
public Field(int x,int y) {
this.x = x;
this.y = y;
this.hit = false;
}
public override string ToString() {
return this.x + "," + this.y;
}