【问题标题】:Uwp binding control getting Width in viewmodelUwp 绑定控件在视图模型中获取宽度
【发布时间】:2017-04-26 03:21:36
【问题描述】:

我目前正在使用地图控件开发 UWP 应用程序。我正在使用 mvvm (无框架)执行此操作。 在我的视图模型中,我计算了您实际看到的米数(宽度)。我通过计算一个像素代表多少米来做到这一点,然后将其乘以控件的宽度。这就是问题所在。 在 WPF 中,您有一个模式 OneWayToSource,它将设置源值而不更改目标值。但这在 UWP 中是缺失的。 如果我使用绑定,我必须在我的视图模型中设置宽度。这是我不想要的。我只想获取地图的宽度。 这不是唯一的问题。我实际上并不需要宽度,因为这给出了 NaN,我需要的是 ActualWidth。但这是一个支持字段,您不能从 xaml 绑定到它。

在保留 mvvm 模式的同时有解决方案吗?

【问题讨论】:

    标签: mvvm uwp


    【解决方案1】:

    ActualWidth 和 ActualHeight 绝不应该是绑定的源或目标。 They simply don't work in that situation. 您需要通过监听其 SizeChanged 事件来获取元素的大小。有 3 种方法可以做到这一点:

    1. x:将 SizeChanged 事件绑定到视图模型中的方法。
    2. 创建一个附加属性,通过监听 SizeChanged 事件将其值同步到元素的大小。然后,您可以将 TwoWay 绑定到此属性。
    3. 编写一个与 2 基本相同的行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      • 2011-08-17
      • 2013-10-07
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 2011-09-18
      相关资源
      最近更新 更多