Xaml看起来像这样:
<ListBox Name="lbEurInsuredType" HorizontalContentAlignment="Stretch" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="0,2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="30"></ColumnDefinition>
<!-- <ColumnDefinition Width="20"></ColumnDefinition>-->
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Title}"></TextBlock>
<TextBox Text="{Binding Uw}"></TextBox>
<!-- <TextBox Text="{Binding Partner}"></TextBox>-->
</Grid>
</DataTemplate></ListBox.ItemTemplate>
</ListBox>
然后在我的代码后面我有:
public DefaultSettings()
{
InitializeComponent();
List<EurItem> items = new List<EurItem>
{
new EurItem() { Title = "Couple", Uw = 190m, Partner = 170m },
new EurItem() { Title = "Family", Uw = 180m, Partner = 160m }
};
lbEurInsuredType.ItemsSource = items;
}
如果我只在xaml中有TextBlock,那么标题会显示在列表框中,一旦我开始介绍其他成员,它就会显示最后绑定的项目并丢失所有其他成员
答案 0 :(得分:0)
这是不必要的,因为您已经在后面的代码中直接设置了它。
ItemsSource="{Binding}"
此外,您没有在后续元素上设置任何Grid.Column
定义。所以他们互相重叠。
你可能想要这样的东西
<Grid Margin="0,2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="30"></ColumnDefinition>
<ColumnDefinition Width="20"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Title}"></TextBlock>
<TextBox Text="{Binding Uw}" Grid.Column="1"></TextBox>
<TextBox Text="{Binding Partner}" Grid.Column="2"></TextBox>
</Grid>
答案 1 :(得分:0)
您在几个列的public class Test {
// is comment, the rest, not\u000a public static void main( String[] args) {
System.out.println("See!");
}
}
中放置了几个控件。默认情况下,放置在Grid
内的每个项目都会显示在第一行和第一列中。
由于你没有告诉控件,否则你的所有控件都会被添加到第一行和第一列,相互重叠......所以只显示最后一个控件。
您需要使用Grid
来指定每个控件应放在哪个列中。
Grid.Column