gpt4 book ai didi

c# - 将 List 绑定(bind)到 c# wpf 中的组合框
转载 作者:太空宇宙 更新时间:2023-11-03 21:33:47 25 4
gpt4 key购买 nike

我有一个名为 Building 的静态类其中包含 List<Beam> Beams作为其属性(property);

public static class Building
{
public static readonly List<Beam> Beams = new List<Beam>();
}

public class Beam
{
public string Story;
public double Elevation;
}

我正在尝试 Bind Building.Beams 到 XAML 中的组合框,以便 Building.Beams 列表中每个项目的 Elevation 和 Story 属性显示在组合框的不同列中。我已经能够实现这两列,但我无法绑定(bind)这些属性。

到目前为止,这是我尝试过的:

<ComboBox x:Name="cmbBuilding"  ItemsSource="{Binding}">
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid Width="300">
<TextBlock Width="150" Text="{Binding Path=Story }"/>
<TextBlock Width="150" Text="{Binding Path=Elevation}"/>
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>

var b1 = new Beam { Elevation = 320, Story = "ST1" };
var b2 = new Beam { Elevation = 640, Story = "ST2" };
Building.Beams.Add(b1);
Building.Beams.Add(b2);

最佳答案

首先您不能绑定(bind)字段

将 Story 和 Elevation 转换为属性(在您的情况下自动属性即可)

public class Beam
{
public string Story { get; set;}
public double Elevation { get; set;}
}

其次,您应该使用 ObservableCollection,以防您在加载完成后将项目添加到列表,以便 UI 收到通知。

public static readonly ObservableCollection<Beam> Beams
= new ObservableCollection<Beam>();

关于c# - 将 List<Object> 绑定(bind)到 c# wpf 中的组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22899421/

25 4 0