2014-02-11 125 views
0

我是XAML和地鐵應用程序開發新手&剛剛開始構建非常基本的Windows應用商店應用程序。Metro App XAML數據綁定

我在理解XAML綁定過程中發生問題,XAML綁定是如何發生的。

請幫幫我。

+0

如果您提供一些代碼,它可以更清晰。還是希望您有一些鏈接來閱讀有關基於XAML應用程序的綁定? –

回答

0

XAML中的綁定是大主題。在兩個字:您768,16設置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 overview找到並Quickstart: Data binding to controls

0

數據綁定窗口應用程序: - 考慮一個場景,其中你是哈瀏覽一個JSON文件,並且您已經寫下了客戶的名字。現在店主已要求您取所有名字。而不是通過所有名稱(txt文件)只是簡單地綁定所有名稱的顯示它。

首先你需要什麼?
1.文本文件/數據。
2.一個講述你的合同的類。
3.數據綁定編碼。
我在資產文件夾中創建了一個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; 

    } 

而現在我在提交/按鈕單擊時調用了此loadData()方法。 我希望現在變得很清楚:)。 謝謝& Regards,