WPF DataTemplate - 定义将在哪个网格的列TextBox中显示

时间:2014-06-18 11:57:50

标签: wpf

我有一个TextBox DataTemplate

    <DataTemplate x:Key="TextBoxTemplate">
        <StackPanel>
            <Label />
            <TextBox />
        </StackPanel>
    </DataTemplate>

网格定义为

<Grid Margin="10 10 10 10">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="25*"></ColumnDefinition>
        <ColumnDefinition Width="25*"></ColumnDefinition>
        <ColumnDefinition Width="25*"></ColumnDefinition>
        <ColumnDefinition Width="25*"></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <ItemsControl ItemsSource="{Binding myObservableCollection}"  ItemTemplateSelector="{StaticResource myItemTemplateSelector}" />
</Grid>

我想要完成的是强制此文本框出现在特定网格的列中 - 到目前为止没有运气。

我试过

    <DataTemplate x:Key="TextBoxTemplate">
        <StackPanel>
            <Label />
            <TextBox Grid.Column="2" />
        </StackPanel>
    </DataTemplate>

但它不起作用。

<DataTemplate x:Key="TextBoxTemplate">
    <StackPanel Grid.Column="2">
        <Label />
        <TextBox />
    </StackPanel>
</DataTemplate>

也不起作用。

“2”仅用于测试,最终我想在那里使用绑定。

是否可以使用DataTemplate执行此操作(以定义我希望TextBox出现在哪个网格的列中)?


我想最终得到像这样放置的TextBox。

enter image description here

因此,TextBox在网格上的位置应该取决于模板的值。

修改ItemsControl以显示在特定网格的列

<Grid Margin="10 10 10 10">
<Grid.ColumnDefinitions>
    <ColumnDefinition Width="25*"></ColumnDefinition>
    <ColumnDefinition Width="25*"></ColumnDefinition>
    <ColumnDefinition Width="25*"></ColumnDefinition>
    <ColumnDefinition Width="25*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<ItemsControl Grid.Column="2" ItemsSource="{Binding myObservableCollection}"  ItemTemplateSelector="{StaticResource myItemTemplateSelector}" />
</Grid>

正在给我这个

enter image description here

这不是我所期待的。我希望TextBoxes根据模板中的值放在不同的列中。

0 个答案:

没有答案