Metro App XAML数据绑定

时间:2014-02-11 08:38:50

标签: c# xaml binding microsoft-metro

我是XAML和Metro应用程序开发的新手。刚刚开始构建非常基本的Windows应用程序。

我在理解XAML绑定过程时遇到了问题,XAML绑定是如何发生的。

请帮帮我。

2 个答案:

答案 0 :(得分:0)

XAML中的绑定是一个重要主题。用两个词来表示:你可以设置DataContextDataSource为你控制:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <ComboBox x:Name="ComboBox1" ItemsSource="{Binding}"
    Foreground="Black" FontSize="30" Height="50" Width="780"/>
</Grid>

在你的代码写:

public class Recording 
{
  public string Artist { get; set; }
  public string Name { get; set; }
  public DateTime ReleaseDate { get; set; }
}

public ObservableCollection<Recording> MyMusic = new ObservableCollection<Recording>();
MyMusic.Add(new Recording("Chris Sells", "Chris Sells Live",
    new DateTime(2008, 2, 5)));
MyMusic.Add(new Recording("Luka Abrus",
    "The Road to Redmond", new DateTime(2007, 4, 3)));
MyMusic.Add(new Recording("Jim Hance",
    "The Best of Jim Hance", new DateTime(2007, 2, 6)));

// Set the data context for the combo box.
ComboBox1.DataContext = MyMusic;

有关您可以在Data binding overviewQuickstart: Data binding to controls

中找到的绑定的更多信息

答案 1 :(得分:0)

数据绑定窗口应用商店: - 考虑一个场景,其中您有一个JSON文件,并且您有客户的书面名称。现在店主要求你取得所有名字。而不是通过所有名称(txt文件)只需绑定所有名称显示它。

首先你需要什么?
 1.文本文件/数据  2.讲述合同的课程 3.数据绑定编码。
我在Assets Folder中创建了一个Data.txt文件。

 [
 {"Name" : "Google" , "Surname" : "Inc."},
 {"Name" : "Stack" , "Surname" : "overflow"}
 ]

2。步骤:我创建了一个类。 myData的

 [DataContract]
class myData {
    [DataMember]
    public string Name { get; set; }
    [DataMember]
    public string Surname { get; set; }

}

此处[DataContract]表示您正在签订合同并发送给 客户端是您的系统(仅用于理解目的)。

步骤3:现在我已经创建了一个名为loadData()的方法,它将获得所有名称。

 public async void loadData() {
        ObservableCollection<string> n = new ObservableCollection<string>();
        StorageFile sf = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(@"Assets\Data.txt");
        var data = await FileIO.ReadTextAsync(sf);
        DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(List<myData>));
        MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(data));
        List<myData> nm = (List<myData>)json.ReadObject(ms);
        foreach (var item in nm)
        {
            n.Add(item.Name);

        }
        names.DataContext = n;

    }

现在我在Submit / button click上调用了这个loadData()方法。 我希望现在你很清楚:)。 谢谢&amp;的问候,