Wpf 将列表框绑定到ObservableCollection
我找不到解决这个问题的答案。 我有一个明显的收集 这是我的班级:Wpf 将列表框绑定到ObservableCollection,wpf,class,binding,observablecollection,Wpf,Class,Binding,Observablecollection,我找不到解决这个问题的答案。 我有一个明显的收集 这是我的班级: public class myClass { public string name; public int[] dimensions = new int[2]; } 这是设置ObservableCollection的代码: public class roomBuilder { private ObservableCollection<myClass> rooms;
public class myClass
{
public string name;
public int[] dimensions = new int[2];
}
这是设置ObservableCollection的代码:
public class roomBuilder
{
private ObservableCollection<myClass> rooms;
public roomBuilder() //constructor
{
string roomName;
int[] dimensions = new int[2];
myClass newRoom = new myClass();
rooms = new ObservableCollection<room>();
roomName = "Hall";
dimensions[0] = 10;
dimensions[1] = 12;
newRoom.name = roomName;
newRoom.dimensions = dimensions;
rooms.Add(newRoom);
roomListBox.DataContext = rooms;
}
这方面的XAML是:
<ListBox Canvas.Left="-1" Canvas.Top="47" Height="419" Name="roomListBox" Width="481" BorderThickness="1" BorderBrush="GhostWhite" ItemsSource="{Binding}" DataContext="{Binding}">
<ListBox.ItemTemplate >
<DataTemplate >
<StackPanel Orientation="Vertical" Margin="1" Name="verstack" >
<StackPanel Orientation="Horizontal" Margin="1" KeyDown="StackPanel_KeyDown" >
<TextBox Text="{Binding Path=name}" IsReadOnly="False" FontFamily="Courier New" FontSize="22" Height="65" VerticalAlignment="Top" TextAlignment="Center"/>
<TextBox Name="xDimension" Text="{Binding Mode=TwoWay, Path=dimensions[0] }" Width="70" Height="65" VerticalAlignment="Top" IsReadOnly="False" FontFamily="Courier New" Margin="2,0,1,0" FontSize="22" MaxLength="3" InputScope="TelephoneNumber" TextAlignment="Center" />
<TextBlock Name="separator" Text=":" FontSize="32" FontWeight="ExtraBold" Margin="1,4,1,0" />
<TextBox Name="yDimension" Text="{Binding Mode=TwoWay, Path=dimensions[1] }" Width="70" Height="65" VerticalAlignment="Top" IsReadOnly="False" FontFamily="Courier New" Margin="1,0,2,0" FontSize="22" MaxLength="3" InputScope="TelephoneNumber" TextAlignment="Center"/>
我还没有关闭这里的Xaml,它下面还有一个负载,当我运行时,没有显示任何内容,我只是不知道问题出在哪里,我已经花了2天的时间来解决它,请有人帮忙。房间需要成为您绑定的公共财产
public ObservableCollection<myClass> rooms
{
get { return ........
读…你能编译这段代码吗?可观察的收集室!=房间=新的可观测集合;是打字错误吗?尽管如此,请检查输出窗口中的数据错误,并注意正确的数据上下文。不,这很好,这只是我做事的一种奇怪方式。下面的答案是正确的,这是我不习惯的事情,所以它帮我解决了问题。