在XAML WPF中动态创建TextBlock和TextBox

时间:2014-08-01 08:58:12

标签: c# wpf visual-studio xaml

我的问题我是否有一个网格,其中TextBlockTextBox的数量会因ComboBox SelectedItem更改

而有所不同

所以,我想要的是我写了一个函数来获取TextBlockTextBox的详细信息。

C#功能

public void GetAdditionalAttributes()
{
    using (Entities _entities = new Entities())
    {
        var attributeAll = (from c in _entities.AdditionalAttributeValues
                            where c.DeviceID == 35
                            select new AttributesClass { AttributeValue = c.AdditionalAttributeValue1, AttributeName = c.AdditionalAttribute.Name }).ToList();
        DeviceAttributes = new ObservableCollection<AttributesClass>(attributeAll);
    }
}

现在在XAML中我正在尝试:

<Style x:Key="AdditionalAttributeDisplay"
        TargetType="Grid"
        x:Name="AdditionalAttributeDisplay"
        >
    <Style.Resources>
        <Style TargetType="ItemsControl">
                <Setter Property="ItemsSource"
                    Value="{Binding DeviceAttributes}" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding SelectedValue, ElementName=DeviceTypeComboBox}"
                                Value="1">
                    <Setter Property="ItemsSource"
                            Value="{Binding DeviceAttributes}" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Style.Resources>
</Style>

但我不知道如何使用TextBlock绑定创建TextBoxItemSource

1 个答案:

答案 0 :(得分:0)

您可以更改ItemTemplate的{​​{1}}。

ItemsControl

在上面的代码段中,将 <Style TargetType="ItemsControl"> <Setter Property="ItemTemplate"> <Setter.Value> <ItemContainerTemplate> <Grid> <TextBox Width="100" Height="20" Text={Binding AttributeName}/> </Grid> </ItemContainerTemplate> </Setter.Value> </Setter> </Style> 替换为您想要的PropertyName成员