2013-09-16 64 views
1

我有問題在Windows Phone中進行綁定。希望您能夠幫助我。數據模板和列表框之間的綁定 - Windows Phone

我有以下數據模板:

<DataTemplate>

<TextBox Name="txt1"/>
<TextBox Name="txt2"/>
</DataTemplate>



我有一個接收ItemsSource屬性如下類別列表框:

public class Product 
{ 

    private int _id; 

    public int Id 
    { 
     get { return _id; } 
     set { _id = value; } 
    } 

    private string _name; 

    public string Name 
    { 
     get { return _name; } 
     set { _name = value; } 
    } 

} 

反正是有Text屬性與ListBoxItem中的類似的對象綁定...

<TextBox Name="txt1" Text={Binding ElementName=ListBox, Path=SelectedItem.Product.Name}/>

回答

1

我得到了一個工作示例 XAML: 下面的代碼

<Grid x:Name="gdTest" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,0,5,0" > 
    <ListBox Width="400" Margin="10" x:Name="lstDemo"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal"> 
        <TextBlock Text="{Binding Path=Id}" Margin="20" /> 
        <TextBlock Text="{Binding Path=Name}" Margin="20"/> 
       </StackPanel> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 

</Grid> 

xaml.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Navigation; 
using Microsoft.Phone.Controls; 
using Microsoft.Phone.Shell; 
using StackOverFlowTestApp.Resources; 
using Microsoft.Phone.Tasks; 
using Microsoft.Phone.UserData; 
using Windows.UI; 
using System.Windows.Media; 
using System.IO; 
using Microsoft.Xna.Framework.Audio; 
using Microsoft.Xna.Framework; 

namespace StackOverFlowTestApp 
{ 
    public partial class MainPage : PhoneApplicationPage 
    { 
     private SoundEffect effect; 
     // Constructor 
     public MainPage() 
     { 
      InitializeComponent(); 
      List<Product> liProd = new List<Product>(); 
      for (int i = 0; i < 10; i++) { 
       liProd.Add(new Product() 
       { 
        Id = i, 
        Name = "Anobik" + i.ToString() 
       }); 
      } 

      lstDemo.ItemsSource = liProd; 

     } 


    } 

    public class Product 
    { 

     private int _id; 

     public int Id 
     { 
      get { return _id; } 
      set { _id = value; } 
     } 

     private string _name; 

     public string Name 
     { 
      get { return _name; } 
      set { _name = value; } 
     } 

    } 


    } 

如果您需要任何更多的解釋,然後讓我知道。

+0

這有助於我理解一些東西。萬分感謝!我還有一個問題,希望你能幫助我。這是一個相似的背景。提前致謝。 http://stackoverflow.com/questions/18838053/binding-between-resources-datatemplate-and-listbox-datatemplate-windows-phone –