【发布时间】:2010-09-30 02:59:23
【问题描述】:
我一直在 WPF 中使用 ItemsControl 来保持安静。我正在使用 MVVM 开发我的应用程序。
现在我遇到了一个问题。我有一个要求,根据 IList 中的值数量,我必须显示中间用逗号分隔的 TextBox 的数量。我编写了一个 ItemsControl,它遍历绑定的 IList 并根据元素的数量显示 TextBoxes。
我已经写了一个这样的DataTemplate
<DataTemplate x:Key="ParameterDisplay1">
<ItemsControl ItemsSource="{Binding Parameters}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" >
<TextBox Width="40" Height="auto" Margin="2" Text="{Binding ProcessData}"></TextBox>
<TextBlock Text=" , " Width="auto" Height="auto" Margin="2" FontSize="15"></TextBlock>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
我是这样使用它的:
<dg:DataGrid x:Name="DataGrid_Standard" toGenerateColumns="False">
<dg:DataGrid.Columns>
<dg:DataGridTemplateColumn Header="Parameters" Width="SizeToCells" IsReadOnly="True"
CellTemplateSelector="{StaticResource paramTemplateSelector}">
</dg:DataGridTemplateColumn>
</dg:DataGrid.Columns>
</dg:DataGrid>
但问题是,我必须在第一个 TextBox 之前显示 "(" 和一个 ")" 在最后一个 TextBox 和 "," 在文本框之间。
我必须显示如下内容 ::::> ** ( TextBox , TextBox , TextBox ) **
使用代码隐藏很容易实现这一点,但我不想在我的代码隐藏文件中编写任何内容,我希望我的视图是干净的。我只想在 XAML 文件中编写所有内容有关如何执行此操作的示例说明将有很大帮助!
【问题讨论】:
标签: .net wpf datatemplate itemscontrol