【发布时间】:2017-04-04 21:35:18
【问题描述】:
想看看是否有人可以帮我解决这个问题?从 XAML 元素到 ViewModel(ex:1) 中的值,或从 CodeBehind(ex:2) 返回到元素,如... HostName.Text,DataBinding 是否有优势?
<TextBlock Text="{Binding HostName}" /> --- (ex:1)
<TextBlock Name="HostName" /> --- (ex:2)
离岸博彩
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Task;
namespace AppName.Models
{
public class Contact
{
[Key]
public int Id {get; set;}
public string Team { get; set;}
public string FirstName { get; set;}
public string LastName { get; set;}
public string Phone { get; set;}
public string Email { get; set;}
public string Role { get; set;}
public string DisplayName => $"[LastName}, {FirstName}";
}
}
【问题讨论】:
-
我不确定我是否完全理解这个问题。 Example1 是人们所说的数据绑定 - 视图模型属性绑定到控件的 Text 属性。当任一端的属性更改时,VM 支持属性会更新(如果您使用双向绑定并已实现 INotifyPropertyChanged)。示例 2 令人困惑。设置 HostName.Text 属性通常在您的代码隐藏文件中(但不是视图模型),但这不是数据绑定。从 ViewModel 执行此操作意味着您的视图模型需要了解您的视图和其中的特定文本块。这打破了 MVVM 模式。
-
我修改了第二条语句以更好地反映您的更正...我想我想了解的是,您何时会选择一种方法而不是另一种方法?例如,ex:2 是否可以支持双向绑定.. 或者示例 2 甚至不被视为绑定?我以为是因为你没有绑定到 Control 的 Text 属性?
标签: c# xaml data-binding uwp