0

我正在使用一个组合框,如下所示:

代码隐藏:

List<Client> clients = GetClients();
ComboBox1.ItemsSource = clients;

Client 类包含属性ClientID, ClientName。ComboBox的DisplayMemberPath属性设置为ClientNameSelectedValuePath设置为ClientID

当我实现这个时,扩展时的组合框会显示完整的客户端类名称,尽管它应该显示所有客户端名称。它显示Ezone.Entities.Types.Client下拉列表中的所有行。你们中的一个人可以解释一下并给我一个解决方法吗?提前致谢。

4

2 回答 2

0

班级客户-

    public class Client:INotifyPropertyChanged
            {
                private string _ClientName;

                public string ClientName
                {
                    get { return _ClientName; }
                    set { _ClientName = value;
                   OnPropertyChanged("ClientName");
                    }
                }
                private string _ClientID;

                public string ClientID
                {
                    get { return _ClientID; }
                    set { _ClientID = value;
                  OnPropertyChanged("ClientID");
                }
                }
            }

 public event PropertyChangedEventHandler PropertyChanged;

        /// <summary>
        /// Called when [property changed].
        /// </summary>
        /// <param name="PropertyName">Name of the property.</param>
        private void OnPropertyChanged(string PropertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(PropertyName));
            }
        }

CodeBehind-

List<Client> clients = GetClients();
            ComboBox1.ItemsSource = clients;

    public List<Client> GetClients()
            {
               List<Client> lst=new List<Client>();
               Client obj = new Client();
               obj.ClientName = "asd";
               obj.ClientID = "1";
               lst.Add(obj);
               return lst;
            }

查看 Xaml-

<ComboBox Name="ComboBox1" Width="100" Height="30" DisplayMemberPath="ClientName" SelectedValuePath="ClientID"/>
于 2013-08-06T13:10:00.243 回答
0

最简单的答案是 WPF 不知道要显示什么...ToString()在您的类中实现该方法,Client您将看到它而不是完全限定名称。

无法识别您的课程的原因可能有很多ComboBox......可能存在拼写错误,或者您提到的属性可能不可见(公共)等。

于 2013-08-06T16:30:42.537 回答