2014-06-05 41 views
1

从来就只是创建了这样一个ListBox一个DataTemplate:获取一个DataTemplate(WPF)的内部,从文本框中的值

<ListBox Height="150" MinHeight="100" HorizontalAlignment="Left" Name="myListBox"   
       VerticalAlignment="Top" Width="290" 
       ItemsSource="{Binding}" SelectionMode="Multiple" Margin="0,18,0,0"> 
          <ListBox.ItemTemplate> 
           <DataTemplate> 
            <StackPanel Orientation="Vertical" > 
             <StackPanel Orientation="Horizontal"> 
              <CheckBox Name="cbLista" Width="100" Content="{Binding Path=Nom_estudio}" IsChecked="{Binding IsChecked, Mode=TwoWay}" 
                Checked="cbLista_Checked" /> 
              <TextBox Name="txbCantidad" Width="100" Margin="0,0,0,5" TextChanged="txbCantidad_TextChanged" /> 
             </StackPanel> 

            </StackPanel> 
           </DataTemplate> 
          </ListBox.ItemTemplate> 
         </ListBox> 

现在我可以在复选框都被选择的每一个对象,但怎么也我获得每个复选框关联的texbox的文本属性?

+0

您可以使用绑定,例如, 'Text =“{Binding Cantidad}”'。当然,这要求你在具有'Nom_estudio'属性的同一个对象上创建'Cantidad'属性。 –

回答

1

将文本框的“文本”属性绑定到数据对象的某个属性(例如MyTextProperty)。然后,当您获得“SelectedItems”列表时,您只需访问此属性。

即:

<TextBox Text="{Binding MyTextProperty}" ... /> 
+0

你很快:) – Nitin

+0

@nit,容易当它的一个简单的问题,我几乎击败了第一个评论;)你的答案同样好,但会从我这里得到upvote。 – BradleyDotNET

+0

+1从我身边;) – Nitin

1

建立在你的类具有Nom_estudioIsChecked性质更多的财产。然后将该属性绑定到TextBox.Text属性

 <StackPanel Orientation="Horizontal"> 
       <CheckBox Name="cbLista" Width="100" Content="{Binding Path=Nom_estudio}" IsChecked="{Binding IsChecked, Mode=TwoWay}" 
               Checked="cbLista_Checked" /> 
       <TextBox Name="txbCantidad" Text="{Binding MYTEXTPROPERTY}" Width="100" Margin="0,0,0,5" TextChanged="txbCantidad_TextChanged" /> 
            </StackPanel>