WPF - 样式 Setter 属性绑定

5

这个有效。

     <Setter Property="Width" Value="300" />
     <Setter Property="Height" Value="300" />

但是当我更改那个时,它不起作用。

    <Setter Property="Width" Value="{Binding ImageSize, Mode=TwoWay}" />
    <Setter Property="Height" Value="{Binding ImageSize, Mode=TwoWay}" />

并声明
    private Int32 imageSize;
    public Int32 ImageSize
    {
        get { return imageSize; }
        set
        {
            imageSize = value;
            NotifyPropertyChanged("ImageSize");
        }
    }

有什么问题吗?

1
你在哪里为应用样式的项设置了 DataContext - Brian S
在UserControl中,DataContext="{Binding ElementName=CodeBehind}" - mozkarakoc
1
然后你有名为CodeBehind的UserControl吗?最可能的原因是它无法在DataContext上找到ImageSize属性。检查你的输出窗口是否有任何绑定错误,并且也许发布更多的代码,这样更容易进行故障排除。 - Brian S
谢谢Brian。这非常有帮助。输出窗口上出现了一个错误:错误:40:BindingExpression路径错误:在'object' ''ListObject'上找不到'ImageSize'属性。我明白了我的错误。再次感谢。 - mozkarakoc
没问题,很高兴能帮助。我在下面的回答中将该评论包装成了一个答案,这样你就可以将此问题标记为已回答。祝你好运! - Brian S
1个回答

6
最有可能的原因是绑定出了问题,特别是DataContext。建议在输出窗口查找绑定错误(它们不会作为标准异常抛出,但会在输出窗口中捕获以进行调试)。绑定错误应该能够指导您确定WPF所识别的DataContext是什么。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接