列表框项目源绑定不起作用

本文关键字:绑定 不起作用 项目 列表 | 更新日期: 2023-09-27 18:19:52

我正在尝试将列表绑定到列表框。列表框绑定正在工作,但我无法将属性绑定到项模板。

这是我的班级

public class handle{
        public string smurfName;
        internal Process process;
        public handle(Process _pro, string _smuf)
        {
            process = _pro;
            smurfName = _smuf;
        }
    }

这是我的窗口构造函数。

public static ObservableCollection<handle> smurfList = new ObservableCollection<handle>();
    public GameMask()
        {
            InitializeComponent();
            runningSmurfs.ItemsSource = smurfList;
            handle newSmurf = new handle(null, "THISNAME");
            smurfList.Add(newSmurf);
        }

这是我的xaml

<ListBox HorizontalAlignment="Left" Height="200" Margin="3,41,0,0" VerticalAlignment="Top" Width="113" Name="runningSmurfs">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Path=smurfName}"></TextBlock>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

不幸的是,我在列表中看不到"THISNAME",但如果我将TexblockBinding更改为文本,它就可以正常工作。

谢谢你的帮助。

列表框项目源绑定不起作用

您至少需要一个属性,这样您的绑定才能工作。smurfName应该是一个属性,如果您也实现INotifyPropertyChanged会更好。

在您的情况下,我认为您不需要实现INotifyPropertyChanged,但您不能绑定到您试图执行的字段

试试这个:

public string SmurfName { get; set; }

以及xaml中与SmurfName 的结合的变化

在句柄类中,将getter和setter添加到smurfName属性:

public string smurfName { get; set; }