相关疑难解决方法(0)

为什么WPF支持绑定到对象的属性,而不支持字段?

我有一个WCF服务,通过如下结构传递状态更新:

[DataContract]
public struct StatusInfo
{
    [DataMember] public int Total;
    [DataMember] public string Authority;
}
...
public StatusInfo GetStatus() { ... }
Run Code Online (Sandbox Code Playgroud)

我在ViewModel中公开了一个属性,如下所示:

public class ServiceViewModel : ViewModel
{
    public StatusInfo CurrentStatus
    {
        get{ return _currentStatus; }
        set
        { 
            _currentStatus = value;
            OnPropertyChanged( () => CurrentStatus );
        }
    }    
}
Run Code Online (Sandbox Code Playgroud)

和XAML一样:

<TextBox Text="{Binding CurrentStatus.Total}" />
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,我在输出窗口中看到错误,指示无法找到Total属性.我检查并仔细检查,我输入正确.我突然意识到错误明确表明找不到"财产".因此,向结构添加属性使其工作得很好.但这对我来说似乎很奇怪,WPF无法处理对字段的单向绑定.从语法上讲,您在代码中访问它们是相同的,并且仅为StatusInfo结构创建自定义视图模型似乎很愚蠢.我错过了WPF绑定的一些内容吗?你能绑定到一个字段还是属性绑定唯一的方法?

.net wpf binding field

21
推荐指数
1
解决办法
1万
查看次数

为什么我们需要C#中的属性

你能告诉我C#中属性的确切用法,我的意思是实用的解释

在我们的项目中,我们正在使用像

/// <summary>
/// column order
/// </summary>
protected int m_order;

/// <summary>
/// Get/Set column order
/// </summary>
public int Order
{
   get { return m_order; }
   set { m_order = value; }
}

/// <summary>
/// constructor
/// </summary>
/// <param name="name">column name</param>
/// <param name="width">column width</param>
/// <param name="order">column order</param>
public ViewColumn(string name, int width, int order)
{
   //
   // TODO: Add constructor logic here
   //
   m_name = name;
   m_width = width;
   m_order = order;
} …
Run Code Online (Sandbox Code Playgroud)

.net c# properties

15
推荐指数
5
解决办法
2万
查看次数

c#3.0中的新自动属性有什么好处?

有什么好处:

public string User {get; set;}
Run Code Online (Sandbox Code Playgroud)

过度

public string User;
Run Code Online (Sandbox Code Playgroud)

由于在第一种情况下您无法访问私人会员,因此仅将您的财产公开会有什么不同?

.net c# properties

0
推荐指数
1
解决办法
497
查看次数

标签 统计

.net ×3

c# ×2

properties ×2

binding ×1

field ×1

wpf ×1