我有3个文本框(TextBox)
和1个按钮(Button)
,希望将每个文本框
的数据分列输入到一个列表框(ListBox)
中。
我知道如何将数据输入到一列:
listbox1.Items.Add(TextBox1.text);
但是我如何将数据输入到多个列中?
我正在使用.NET WPF。我想要使用一个ListBox
或者一个ListView
。
我有3个文本框(TextBox)
和1个按钮(Button)
,希望将每个文本框
的数据分列输入到一个列表框(ListBox)
中。
我知道如何将数据输入到一列:
listbox1.Items.Add(TextBox1.text);
但是我如何将数据输入到多个列中?
我正在使用.NET WPF。我想要使用一个ListBox
或者一个ListView
。
ListView
替代:
类似于这样:
<ListView ItemsSource="{Binding SourceCollection}">
<ListView.View>
<GridView>
<GridViewColumn Header="Test1" DisplayMemberBinding="{Binding Test1}" />
<GridViewColumn Header="Test2" DisplayMemberBinding="{Binding Test2}" />
<GridViewColumn Header="Test3" DisplayMemberBinding="{Binding Test3}" />
<GridViewColumn Header="Button">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button>Button Text</Button>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
SourceCollection.Add(MyNewItem);
。 - DefenestrationDay正如Ray所指出的那样,ListView可以完成任务。但是如果您被困住并且/或者想要使用ListBox,您也可以使用一个带有Grid的ItemTemplate,并在ListBox本身上设置Grid.IsSharedSizeScope属性。例如:
<ListBox ItemsSource="{Binding DataSource}" Grid.IsSharedSizeScope="True">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="Column1"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="Column2"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="Column3"/>
</Grid.ColumnDefinitions>
<!-- Assumes MVVM and you wish to bind to properties and commands -->
<TextBlock Grid.Column="0" Text="{Binding ColumnOneText}"/>
<TextBlock Grid.Column="1" Text="{Binding ColumnTwoText}"/>
<TextBlock Grid.Column="2" Text="{Binding ColumnThreeText}"/>
<Button Content="ClickMe" Command="{Binding ButtonExecutionCommand}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
这是一个巧妙的技巧,也可以应用于其他情况,例如您有多个Grid实例(即每个ListBoxItem一个Grid),并且希望共享某一列。
ListView
API的烦恼 :)。 - z33kGroupbox
和Dockpanel
。<GroupBox Width="250"
Margin="10,0,0,0"
FontSize="20"
Header="کسورات"
Style="{StaticResource Gb}">
<ListBox Margin="0" AlternationCount="2">
<ListBoxItem>
<Border Margin="0"
BorderBrush="#ddd"
BorderThickness="0,1,0,1">
<DockPanel Background="#f9f9f9" LastChildFill="True">
<controls2:TimeEditBox DockPanel.Dock="Right"
FontSize="13"
Mask="00:00"
Text="00:00"
TextAlignment="Center"
controls2:TextBoxMaskBehavior.Mask="Integer" />
<TextBox Width="50"
Margin="0,0,5,0"
DockPanel.Dock="Right"
FontSize="13"
Text="122"
TextAlignment="Center"
controls2:TextBoxMaskBehavior.Mask="Integer" />
<TextBlock VerticalAlignment="Center"
FontSize="13"
Text="غیبت"
TextAlignment="Center" />
</DockPanel>
</Border>
</ListBoxItem>
**</ListBox>**
</GroupBox>
DataGrid
?ListView
无法通知数据源进行选择更改。 - DrMarbuse