在Silverlight中获取数据绑定列表的ListItem

在Silverlight中获取数据绑定列表的ListItem,silverlight,data-binding,listbox,Silverlight,Data Binding,Listbox,在我的Silverlight4应用程序中,我有一个用户定义类的可观察列表 ObservableCollection<MyClass> myList; public class MyClass { public string Name { get; set; } public string Value { get; set; } } observedcollection myList; 公共类MyClass { 公共字符串名称{get;set;} 公共字符串值{get;se

在我的Silverlight4应用程序中,我有一个用户定义类的可观察列表

ObservableCollection<MyClass> myList;

public class MyClass
{
  public string Name { get; set; }
  public string Value { get; set; }
}
observedcollection myList;
公共类MyClass
{
公共字符串名称{get;set;}
公共字符串值{get;set;}
}
我使用数据绑定和ListBoxItems的模板在列表框中显示此列表:

<ListBox x:Name="ListBoxCharacteristics" Background="{x:Null}" HorizontalAlignment="Left" >
  <!-- DataTemplate to display the content -->
  <ListBox.ItemTemplate>
    <DataTemplate>
      <StackPanel x:Name="StackPanelBorder" Orientation="Horizontal" HorizontalAlignment="Left">
        <TextBox x:Name="TextBoxCharacteristicName" Style="{StaticResource InputTextBox}" Text="{Binding Name}" />
        <TextBox x:Name="TextBoxSep" Style="{StaticResource ReadOnlyTextBox}" Text="=" />
        <TextBox x:Name="TextBoxValue" Style="{StaticResource InputTextBox}" Text="{Binding Value}" LostFocus="FormulaTextBox_LostFocus" TextChanged="Formula_TextChanged"/>

        <Button x:Name="ButtonCheck" Style="{StaticResource RoundWebdingButton}" Content="s" Click="ButtonCheck_Click" />
        <Button x:Name="ButtonAccept" Style="{StaticResource RoundWebdingButton}" Content="a" Click="ButtonAccept_Click" />
        <Button x:Name="ButtonRemove" Style="{StaticResource RoundWebdingButton}" Content="r" Click="ButtonRemove_Click" />
      </StackPanel>
    </DataTemplate>
  </ListBox.ItemTemplate>

  <ListBox.ItemContainerStyle>
    <Style TargetType="ListBoxItem">
      <Setter Property="HorizontalAlignment" Value="Left" />
    </Style>
  </ListBox.ItemContainerStyle>
</ListBox>

用户可以更改文本框中的值,并可以使用按钮验证输入、接受输入(将其写入基础模型)或删除输入。要操作底层模型,我需要访问关联的项(显示在listboxitem中,用户在其中单击了按钮)

获取该项的一个想法是使用SelectedItem-Property,它将包含所需的MyClass实例。问题是,单击按钮或文本框不会选择包含的ListBoxItem。用户必须首先手动选择Listboxitem,方法是单击该项目的某个位置,在该位置不显示文本框或按钮。否则,SelectedItem将为空。 我可以通过按钮的父对象获取TextBoxCharacteristicName文本框,但由于用户也可以更改此内容,因此我无法使用此属性作为标识符获取正确的项目

还有其他想法吗,如何找出哪个MyClass实例显示在相应的ListBoxItem中

提前感谢,

弗兰克找到了!该按钮有一个属性“DataContext”,它包含我正在寻找的MyClass对象