2012-01-18 109 views
14

我有3個文本框和1個按鈕,並希望進入與列列表框中的文本框的信息。這樣將保存在列表框中多列列表框在WPF

電話號碼簿我知道如何與一列listbox1.Items.Add(TextBox1.text)做到這一點。我怎樣才能在下一列添加其他文本框?我使用.NET WPF

我想用一個列表框或一個ListView,但我現在如何在列表視圖或列表框中輸入的文本框中的信息不

見鏈接http://i.stack.imgur.com/FtQ47.png

回答

23

你想改爲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> 
+0

!錯誤 - 我編輯了你的Q,而不是發佈我自己的。恢復... – 2012-01-18 13:52:08

+0

感謝您的快速回復朋友,我應該在xaml代碼中使用它 – user1156309 2012-01-19 00:08:05

+1

如何使用c#代碼向其插入項目? – 2012-04-30 07:49:36

21

正如雷正確地指出,ListView控件將做的工作。但是,如果你堅持和/或希望使用列表框,您還可以使用與電網一個ItemTemplate並設置列表框本身的Grid.IsSharedSizeScope property。例如:

<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> 

這是一個巧妙的方法也可應用到你有網格的多個實例,其他情況下(即:每一個ListBoxItem一個按照這種情況下),並希望分享一列。

最好的問候,

+1

代碼必須是包裹在一個因爲現在支持ItemTemplate屬性的孩子。 – 2014-07-09 06:40:46

+0

你是對的:) – 2014-07-09 09:34:43

1

使用組框和docpanel

<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> 

       </GroupBox>