首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF中的基础数据库

WPF中的基础数据库
EN

Stack Overflow用户
提问于 2012-11-20 17:52:20
回答 4查看 226关注 0票数 1

我目前正在编写一个绘制类图的程序,并且正在使用MVVM模式。我的类在用户界面中的宽度和高度设置为auto,因为我让包含的元素定义大小。

问题是我需要模型中的宽度和高度来做一些计算,所以我需要一个反向绑定或者一些东西来更新我的模型中的属性,这一点我不太了解。我该怎么做?

我试过了,但没成功:

XAML:

代码语言:javascript
复制
Width="{Binding Width, Mode=OneWayToSource}" Height="{Binding Height,
Mode=OneWayToSource}">

C#

代码语言:javascript
复制
private int width;
    public int Width {
        get { return width; }
        set {
            width = value;
        }
    }
    private int height;
    public int Height {
        get { return height; }
        set {
            height = value;
        }
    }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-20 18:28:39

当调整XAML所指向的任何元素的大小时,您所拥有的应该正确地更新您的宽度和高度成员变量。

如果还想更新代码中的值并将其反映在XAML元素中,则需要INotifyPropertyChanged和TwoWay绑定。您也可以使用依赖项属性,但是您可能不希望在ViewModel代码中这样做。

编辑:根据我下面的评论,您似乎希望绑定到ActualWidth和ActualHeight属性。Silverlight女士的文件说:

为了ElementName绑定的目的,ActualWidth不会在其更改时发布更新(因为它的异步和运行时计算性质)。不要尝试使用ActualWidth作为ElementName绑定的绑定源。如果您的场景需要基于ActualWidth的更新,请使用SizeChanged处理程序。

.NET Framework4.5文档并没有提出相同的警告,但它似乎是ReadOnly DP的暗示,我也看到了在XAML中使用触发器的解决方法。请参见接受的答案这里后面的讨论。这个讨论表明MS无意用ReadOnly DP来解决这个问题。

票数 1
EN

Stack Overflow用户

发布于 2012-11-20 18:26:46

编辑:

有三件事你可能要做。

  1. 您的类(定义了宽度和高度属性的模型或视图模型)需要实现INotifyPropertyChanged接口。
  2. 您还需要双向绑定,因为您希望从代码中设置宽度/高度,并从用户那里捕获它。
  3. 您需要绑定ActualWidth和ActualHeight - WPF中宽度和ActualWidth的区别是什么?

关于INotifyPropertyChanged - http://msdn.microsoft.com/en-us/library/ms743695.aspx的更多信息

票数 0
EN

Stack Overflow用户

发布于 2012-11-20 18:29:52

确保将视图模型设置为视图的DataContext。您需要在视图模型中实现INotifyPropertyChanged。然后,更新属性如下:

代码语言:javascript
复制
    public int Width 
    {
        get { return width; }
        set 
          {
            if(width != value)
              {
                 width = value;
                 NotifyPropertyChanged();
              }
          }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13479117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档