在WinUI 3中,在样式setter中绑定属性可能会出现问题,因为它们不在可视化树中。但是,我们可以使用BindingOperations.SetBinding方法来解决这个问题。下面是示例代码:
在此示例中,我们定义了一个“MyButtonStyle”,它有一个属性“Background”,它绑定到“local:MyClass.MyProperty”并使用了“MyConverter”转换器。我们还定义了MyConverter作为Page资源。
然后,在我们的页面中,我们使用了这个样式,并在我们的按钮上绑定了MyClass.MyProperty到ViewModel中的另一个属性。注意,我们使用了x:Bind来绑定MyOtherProperty。
通过这种方式,我们在样式setter中绑定了一个属性,而不会因为不在可视化树中而出现问题。