UWP:绑定仅适用于导航到,没有实时更新
UWP: Binding works on navigated to only, no updates in real time
绑定运行良好,但 属性 的更改不会触发更新。
所以,我的应用程序有一个复杂的数据模型,我必须从不同的页面访问它。因此,我通过我的 App.xaml.cs 保持静态 class – 工作正常。我正在尝试使用此数据模型通过另一帧中的 ColorPicker 更新一帧的背景颜色。虽然绑定在导航到一个框架时没有问题,但当两个框架彼此相邻可见时,我无法让它实时工作。
让我向您介绍代码……
<Grid Background="{x:Bind local:App.myData.BgColor, Converter={StaticResource StringToSolidColorBrushConverter}, Mode=OneWay}">
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="SettingsColumn" />
<ColumnDefinition x:Name="ContentColumn" />
</Grid.ColumnDefinitions>
<Frame Grid.Column="0" x:Name="SettingsFrame"></Frame>
<Frame Grid.Column="1" x:Name="ContentFrame"></Frame>
</Grid>
MainPage.xaml – 这里定义了两个框架,以及问题的背景颜色。我什至创建了一个转换器,实际上我似乎并不需要它。我可以看出,转换器仅在框架启动时使用。相应的 cs 文件仅包含导航调用。
<Grid>
<ColorPicker x:Name="BGColorPicker"
Color="{x:Bind local:App.myData.BgColor, Mode=TwoWay}" />
</Grid>
SettingsPage.xaml – 这是带有绑定的颜色选择器。我可以看到这按预期更新了数据模型。
问题似乎是,即使我的 属性 发生变化,绑定也不会在运行时更新背景颜色,只会在启动时更新。这是为什么?以及如何将其更改为实时更新?任何提示将不胜感激。
"Data Binding in Depth" 篇文章是缺失的 link。正如你们所有人所建议的,我需要实施 INotifyPropertyChanged
。谢谢指点。然后我遇到了问题,整个事情以某种方式创建了一个无限循环,我不得不将颜色选择器的绑定更改为 OneTime
并通过 ColorChanged
事件进行更新。现在可以了。非常感谢大家!
绑定运行良好,但 属性 的更改不会触发更新。
所以,我的应用程序有一个复杂的数据模型,我必须从不同的页面访问它。因此,我通过我的 App.xaml.cs 保持静态 class – 工作正常。我正在尝试使用此数据模型通过另一帧中的 ColorPicker 更新一帧的背景颜色。虽然绑定在导航到一个框架时没有问题,但当两个框架彼此相邻可见时,我无法让它实时工作。 让我向您介绍代码……
<Grid Background="{x:Bind local:App.myData.BgColor, Converter={StaticResource StringToSolidColorBrushConverter}, Mode=OneWay}">
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="SettingsColumn" />
<ColumnDefinition x:Name="ContentColumn" />
</Grid.ColumnDefinitions>
<Frame Grid.Column="0" x:Name="SettingsFrame"></Frame>
<Frame Grid.Column="1" x:Name="ContentFrame"></Frame>
</Grid>
MainPage.xaml – 这里定义了两个框架,以及问题的背景颜色。我什至创建了一个转换器,实际上我似乎并不需要它。我可以看出,转换器仅在框架启动时使用。相应的 cs 文件仅包含导航调用。
<Grid>
<ColorPicker x:Name="BGColorPicker"
Color="{x:Bind local:App.myData.BgColor, Mode=TwoWay}" />
</Grid>
SettingsPage.xaml – 这是带有绑定的颜色选择器。我可以看到这按预期更新了数据模型。
问题似乎是,即使我的 属性 发生变化,绑定也不会在运行时更新背景颜色,只会在启动时更新。这是为什么?以及如何将其更改为实时更新?任何提示将不胜感激。
"Data Binding in Depth" 篇文章是缺失的 link。正如你们所有人所建议的,我需要实施 INotifyPropertyChanged
。谢谢指点。然后我遇到了问题,整个事情以某种方式创建了一个无限循环,我不得不将颜色选择器的绑定更改为 OneTime
并通过 ColorChanged
事件进行更新。现在可以了。非常感谢大家!