2012-02-11 47 views
0

我有一个具有3个属性(名,姓,年龄)的Student类。将DataContext绑定到一个矩形

在.xaml(基本上两个矩形 - 每个包含3个文本块绑定到这3个属性)。

<Border Grid.Column="0" Grid.Row="5" > 
     <StackPanel Orientation="Horizontal"> 
       <Rectangle Width="16" Height="16" Name="rectangle1" /> 
       <TextBlock Text="{Binding Mode=TwoWay, Path=FirstName}" Padding="2"/> 
       <TextBlock Text="{Binding Mode=TwoWay, Path=LastName}" Padding="2"/> 
       <TextBlock Text="{Binding Mode=TwoWay, Path=Age}" Padding="2"/> 
     </StackPanel> 
    </Border> 
    <Border Grid.Column="0" Grid.Row="6"> 
     <StackPanel Orientation="Horizontal"> 
      <Rectangle Width="16" Height="16" Fill="{Binding Converter={StaticResource AvailabilityToBrushConverter1}, Path=IsAvailable}" Name="rectangle2"/> 
      <TextBlock Text="{Binding Mode=TwoWay, Path=FirstName}" Padding="2"/> 
      <TextBlock Text="{Binding Mode=TwoWay, Path=LastName}" Padding="2"/> 
      <TextBlock Text="{Binding Mode=TwoWay, Path=Age}" Padding="2"/> 
     </StackPanel> 
    </Border> 

在.xaml.cs

Student student1 = new Student { FirstName = "James", LastName = "Peter", Age= 12 ,IsAvailable=true }; 
Student student2 = new Student { FirstName = "Mark", LastName = "Smith", Age = 20 }; 

后的InitializeComponent

InitializeComponent();  
DataContext = student1; 

当我运行得到

詹姆斯·彼得12
詹姆斯·彼得12

我想在窗体加载

詹姆斯·彼得12
马克·史密斯20

我试图用这一点,但没有奏效:

rectangle1.DataContext=student1; 
rectangle2.DataContext=student2; 

怎么办我为这两个矩形设置了两个不同的值?

回答

2

Rectangles包含TextBlocks,在这两种情况下,StackPanel,则应该对其设置的DataContext代替。