DataContext绑定到一个矩形

时间:2012-02-11 01:05:12

标签: c# wpf xaml data-binding

我有一个学生,有3个属性(名字,姓氏,年龄)。

在.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;

如何为这两个矩形设置两个不同的值?

1 个答案:

答案 0 :(得分:2)

Rectangles执行包含TextBlocks,在StackPanel的情况下,您应该在DataContext上设置{{1}}。