在Grid中填充ComboBox

时间:2011-04-15 16:32:47

标签: wpf combobox binding itemssource

我有一个ViewModel,有两个集合属性。我用一个集合来填充页面上的表单字段,其DataContext设置为此ViewModel。在此表单中,在使用该集合填充的字段中,我还有一个ComboBox,我想用其他集合填充。

我使用网格来进行布局,并将此网格的DataContext设置为第一个集合。当我在网格外面有一个ComboBox时,我可以很容易地用第二个集合填充它。但是一旦我在网格中尝试这样做,我似乎无法完成它。

在代码段中,我将网格的DataContext设置为ItemTypes。从ItemTypes开始,字段可以获取其值。 ComboBox虽然需要从其他集合中获取其值:

<Grid DataContext="{Binding ItemTypes}">
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>

        <TextBlock Text="Name:" />
        <TextBox Grid.Column="2" Text="{Binding Name}" />

        <TextBlock Grid.Row="1" Text="Description:" />
        <TextBox Grid.Column="1" Grid.Row="1" Text="{Binding Description}" />

        <TextBlock Grid.Row="2" Text="Manufacturer:" />
        <ComboBox Grid.Column="1" Grid.Row="2"  />

        <TextBlock Grid.Row="3" Text="Short Name:" />
        <TextBox Grid.Column="1" Grid.Row="3" Text="{Binding ShortName}" />

        <TextBlock Grid.Row="5" Text="Weight:"/>
        <TextBox Grid.Column="1" Grid.Row="5" Text="{Binding Weight}" />
    </Grid>

0 个答案:

没有答案