我想在列表框中显示一个字符串和三个bool,因此我创建了一个ItemTemplate:
<ListBox x:Name="lstVars" Margin="10,41" Grid.ColumnSpan="4" Grid.Column="1">
<ListBox.ItemTemplate>
<DataTemplate>
<WrapPanel Height="30">
<TextBlock Text="{Binding description}" VerticalAlignment="Center" HorizontalAlignment="Left" Width="200"/>
<CheckBox Margin="3" Content="a" IsChecked="{Binding save}" Width="200"/>
<CheckBox Margin="3" Content="b" IsChecked="{Binding displayBoard}" Width="200"/>
<CheckBox Margin="3" Content="c" IsChecked="{Binding displayGraph}" Width="200"/>
</WrapPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我创建了一个测试类,因为我的原始类不起作用(但是测试类会出现相同的“错误”):
public class test
{
public String description;
public bool save { get; set; }
public bool displayBoard { get; set; }
public bool displayGraph { get; set; }
public test(String description, bool save, bool displayBoard, bool displayGraph)
{
this.description = description;
this.save = save;
this.displayBoard = displayBoard;
this.displayGraph = displayGraph;
}
}
当我向列表框添加一些值时,不显示字符串
lstVars.Items.Add(new test("teststring", true, false, true));
我首先认为文本只是在一个不可见的行中但是当我写Text="123test"
而不是Text="{Binding description}"
时,它会显示123test,就像它应该的那样。
答案 0 :(得分:2)
您必须将绑定对象声明为属性。就像你的布尔属性一样。
public String description {get; set;}