我发现了一些朝着同一方向发展的问题,但可以直接找到与我的问题相适应的问题。
我在列表中有一个列表,其中包含2D按钮阵列。现在,我想将“ IsEnabled”状态绑定到类的属性。 “ Tag”已经充满了该类对象中的正确值,但是无论我怎样尝试,“ IsEnabled”都无法正常工作。
这是我使用的DataTemplate的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”的类: 私人诠释x; 私有in 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;
}
答案 0 :(得分:1)
hit
是代码中的一个字段。您只能绑定到属性。
尝试将其更改为这样的属性:
public bool hit { get; set; }