我有一个列表框“lbModernLineView”,它在其中绑定到“Lines”可观察集合,每个列表框项目都与“Line”对象绑定。我在这个列表框中有另一个名为“InnerListBox”的列表框。
一旦用户右键单击“InnerListBox”,我将向用户显示弹出窗口。在此弹出窗口中,我将显示“Line”类中的所有属性(例如:Value1,Value2等等)。
如果用户从弹出窗口中选择“属性”名称,我需要在InnerListBox中显示该属性“value”。 (例如:如果用户选择“value1”,那么“Line”对象中的对应值需要显示在InnerListBox中。)
用户可以从Poppup中选择最多5个属性名称,该“Line”对象的5个属性值和5个属性名称应该显示在“InnerListBox”中。
如何在列表框项中绑定这些动态属性值?
public class Line
{
public int Value1{ get; set; }
public int Value2{ get; set; }
public int Value3{ get; set; }
public int Value4{ get; set; }
public int Value5{ get; set; }
public int Value6{ get; set; }
public int Value7{ get; set; }
public int Value8{ get; set; }
}
以下是我的listBox示例
的一部分 <ListBox x:Name="lbModernLineView"
Grid.Row="1"
Margin="2,2,2,2"
FontFamily="Courier New"
FontSize="13" ItemsSource="{Binding Lines,IsAsync=True,
Mode=TwoWay}" >
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Black" BorderThickness="2,1,2,1">
<Border.ToolTip>
<TextBlock Text="{Binding desription}" />
</Border.ToolTip>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60" />
<ColumnDefinition Width="110" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="89" />
</Grid.RowDefinitions>
<Border Grid.Column="1"
BorderBrush="Black"
BorderThickness="0,0,2,0" >
<ListBox ItemsSource="{Binding ModernColumn,Mode=TwoWay}" Name="InnerListBox" >
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Background="Transparent" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"> </ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Prop}" />
<TextBlock Grid.Column="1" Text="{Binding Value}" HorizontalAlignment="Right" Background="Transparent"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<
</ListBox>