C# 访问Itemscontrol'中的对象;s项目来源

C# 访问Itemscontrol'中的对象;s项目来源,c#,wpf,C#,Wpf,这是我的ItemsControl <ItemsControl Name="empanadas_ic" ItemsSource="{Binding}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <UniformGrid Columns="2"/> </ItemsPanelTemplate> </ItemsContr

这是我的ItemsControl

<ItemsControl Name="empanadas_ic" 
              ItemsSource="{Binding}">
  <ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
      <UniformGrid Columns="2"/>
    </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <Grid HorizontalAlignment="Right">
        <Grid.ColumnDefinitions>
          <ColumnDefinition Width="*"/>
          <ColumnDefinition Width="25"/>
        </Grid.ColumnDefinitions>
        <Label Name="emp_nombre_lbl"
               Content="{Binding nombre}"
               Grid.Column="0"/>
        <TextBox Name="emp_cantidad_tb"
                 Grid.Column="1"
                 TextChanged="emp_cantidad_tb_TextChanged" />
      </Grid>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>
我已访问标签和文本框,但未访问ItemsSource中的de项:

int cant;
String nombre;
ContentPresenter c;

for (int i = 0; i < empanadas_ic.Items.Count; i++){
  c = (ContentPresenter)empanadas_ic.ItemContainerGenerator.ContainerFromItem(empanadas_ic.Items[i]);

  // LABEL ACCESS
  nombre = (c.ContentTemplate.FindName("emp_nombre_lbl", c) as Label).Content.ToString();

  // TEXTBOX ACCESS
  cant = Convert.ToInt32((c.ContentTemplate.FindName("emp_cantidad_tb", c) as TextBox).Text);


}
它向我展示了这样的东西:

{1, lalala, 123}

所以。。。我的对象在那里,但不能丰富它们。

您的
ItemsSource
设置为匿名类型的
IEnumerable

您可以使用
dynamic
关键字访问它的属性:

for (int i = 0; i<empanadas_ic.Items.Count; i++)
{
    dynamic obj = empanadas_ic.Items[i];
    var id_empanada = obj.id_empanada.ToString();
    var nombre = obj.nombre.ToString();
    //...
}
…将
ItemsSource
设置为此类型的
IEnumerable

var v_empanadas = from t_empanadas in context.empanadas.ToList()
                  where t_empanadas.habilitado
                  select new YourClass
                  {
                      id_empanada = t_empanadas.id_empanada,
                      nombre = t_empanadas.nombre,
                      precio = t_empanadas.precio
                  };
…和演员:

for (int i = 0; i<empanadas_ic.Items.Count; i++)
{
    YourClass obj = empanadas_ic.Items[i] as YourClass;
    if(obj != null)
    {
        var id_empanada = obj.id_empanada;
    }
    //...
}

for(int i=0;i您的
ItemsSource
设置为匿名类型的
IEnumerable

您可以使用
dynamic
关键字访问它的属性:

for (int i = 0; i<empanadas_ic.Items.Count; i++)
{
    dynamic obj = empanadas_ic.Items[i];
    var id_empanada = obj.id_empanada.ToString();
    var nombre = obj.nombre.ToString();
    //...
}
…将
ItemsSource
设置为此类型的
IEnumerable

var v_empanadas = from t_empanadas in context.empanadas.ToList()
                  where t_empanadas.habilitado
                  select new YourClass
                  {
                      id_empanada = t_empanadas.id_empanada,
                      nombre = t_empanadas.nombre,
                      precio = t_empanadas.precio
                  };
…和演员:

for (int i = 0; i<empanadas_ic.Items.Count; i++)
{
    YourClass obj = empanadas_ic.Items[i] as YourClass;
    if(obj != null)
    {
        var id_empanada = obj.id_empanada;
    }
    //...
}
for(int i=0;i