C# 如何绑定列表框嵌套模板中的变量?

C# 如何绑定列表框嵌套模板中的变量?,c#,.net,wpf,C#,.net,Wpf,代码隐藏: <ListBox Name="serumListBox" VerticalContentAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Visible" ItemsSource="{Binding Path=SerumList}"> <ListBox.Resources> <Style TargetType="ListBoxI

代码隐藏:

<ListBox Name="serumListBox" VerticalContentAlignment="Stretch" 
    ScrollViewer.HorizontalScrollBarVisibility="Visible" ItemsSource="{Binding Path=SerumList}">
        <ListBox.Resources>
            <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding IsMouseOver,RelativeSource={RelativeSource Self}}" 
                        Value="True">
                        <Setter Property="IsSelected" Value="True" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ListBox.Resources>
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Vertical" >
                    <Button Width="250" Height="70"
                        HorizontalContentAlignment="Stretch" Click="SerumListItem_Click" >
                        <Button.ContentTemplate>
                            <DataTemplate>
                                <StackPanel>
                                    <Button Click="SerumListItemRemove_Click" VerticalAlignment="Top" HorizontalAlignment="Right" Width="22" >
                                        <Image Source="./Images/close.png"></Image>
                                    </Button>
                                    <Label VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0,-9,0,0" Content="{Binding Name}" />
                                    <Label VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0,-4,0,0" Content="{Binding LotNum}"/>
                                </StackPanel>
                            </DataTemplate>
                        </Button.ContentTemplate>
                    </Button>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
public分部类主窗口:MetroWindow
{
私有ObservableCollection serumList=新ObservableCollection();
公共可观测收集服务列表
{
获取{return serumList;}
设置{serumList=value;}
}
公共主窗口()
{
初始化组件();
serumListBox.ItemsSource=SerumList;
}
专用无效按钮插入\单击(对象发送者,路由目标)
{
添加(新血清(){Name=“aadasfas”,Year=“2”,Month=“2”,LotNum=“2”,Type=“2”});
}
private void SerumListItemRemove_单击(对象发送方,路由目标)
{
serumList.RemoveAt(serumListBox.SelectedIndex);
}
private void SerumListItem_单击(对象发送者,路由目标e)
{
}
}

由于button datatemplate是listbox datatemplate的嵌套模板,我无法正确绑定标签内容。也未找到此类内容的任何资源或示例。有什么想法吗?

请尝试您的
标签。内容
绑定
如下:

public partial class MainWindow : MetroWindow
{
    private ObservableCollection<Serum> serumList = new ObservableCollection<Serum>();

    public ObservableCollection<Serum> SerumList 
    {
        get { return serumList; }
        set { serumList = value; }
    }

    public MainWindow()
    {
        InitializeComponent();
        serumListBox.ItemsSource = SerumList;
    }

    private void buttonInsert_Click(object sender, RoutedEventArgs e)
    {
        serumList.Add(new Serum() { Name = "aadasfas", Year = "2", Month = "2", LotNum = "2", Type = "2" });
    }

    private void SerumListItemRemove_Click(object sender, RoutedEventArgs e)
    {
        serumList.RemoveAt(serumListBox.SelectedIndex);
    }

    private void SerumListItem_Click(object sender, RoutedEventArgs e)
    {

    }
}
。。。
...
...
<Label Margin="0,-9,0,0"
        HorizontalAlignment="Left"
        VerticalAlignment="Top"
        Content="{Binding DataContext.Name,
                          RelativeSource={RelativeSource FindAncestor,
                                                        AncestorType={x:Type ListBoxItem}}}" />
<Label Margin="0,-4,0,0"
        HorizontalAlignment="Left"
        VerticalAlignment="Top"
        Content="{Binding DataContext.LotNum,
                          RelativeSource={RelativeSource FindAncestor,
                                                        AncestorType={x:Type ListBoxItem}}}" />
...