发出将布尔值绑定到按钮的IsEnabled的问题

时间:2018-10-01 22:00:08

标签: c# wpf button binding isenabled

我发现了一些朝着同一方向发展的问题,但可以直接找到与我的问题相适应的问题。

我在列表中有一个列表,其中包含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;
    }

1 个答案:

答案 0 :(得分:1)

hit是代码中的一个字段。您只能绑定到属性。

尝试将其更改为这样的属性:

public bool hit { get; set; }