首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表框不显示可观察集合的内容

列表框不显示可观察集合的内容
EN

Stack Overflow用户
提问于 2019-08-07 22:05:43
回答 1查看 39关注 0票数 0

我已经使用mvvm模型和连接到azure的sql数据库创建了一个应用程序。当我试图获取数据库中的信息时,我的列表框会检测集合中有多少对象,并显示列表的路径而不是内容。

我已经尝试过我的sql查询,这只会很好地返回数据。

查看:

代码语言:javascript
复制
            xmlns:local="clr-namespace:Lance_Theunis_r0702301_2ITFA"
            xmlns:viewmodel="clr- 
   namespace:Lance_Theunis_r0702301_2ITFA.ViewModel"
            mc:Ignorable="d"
            Title="MainWindow" Height="450" Width="800">

        <Window.Resources>
            <viewmodel:WagenViewModel x:Key="WagenViewModel" />
        </Window.Resources>

        <DockPanel LastChildFill="True" DataContext="{StaticResource 
    WagenViewModel}">
            <StackPanel DockPanel.Dock="Left" Width="333px">
                <ListBox ItemsSource="{Binding Path=Wagens}" />
            </StackPanel>

视图模型:

代码语言:javascript
复制
    namespace Lance_Theunis_r0702301_2ITFA.ViewModel
    {
        class WagenViewModel : BaseViewModel
        {
            public WagenViewModel()
            {
                LeesWagens();
            }
            private ObservableCollection<Wagen> wagens;
            public ObservableCollection<Wagen> Wagens
            {
                get
                {
                    return wagens;
                }
                set
                {
                    wagens = value;
                    NotifyPropertyChanged();
                }
            }
        private void LeesWagens()
        {
            DataService wagenDS = new DataService();

            wagens = new ObservableCollection<Wagen>(wagenDS.GetWagens());
        }
    }
}

DataService类:

代码语言:javascript
复制
namespace Lance_Theunis_r0702301_2ITFA.Model
{
    class DataService
    {
        private static string connectionString =
       ConfigurationManager.ConnectionStrings["azure"].ConnectionString;


        private static IDbConnection db = new SqlConnection(connectionString);

        public List<Wagen> GetWagens()
        {
            string sql = "Select naam from Wagen order by naam";

            return (List<Wagen>)db.Query<Wagen>(sql);
        }

    }
}

没有错误消息。列表框显示(Lance_Theunis_r0702301_2ITFA.Model.Wagen)而不是例如(bmw m3)。

EN

回答 1

Stack Overflow用户

发布于 2019-08-07 22:12:36

DisplayMemberPath属性设置为"naam“或您要显示的Wagen类的属性名称:

代码语言:javascript
复制
<ListBox ItemsSource="{Binding Path=Wagens}" DisplayMemberPath="naam" />
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57396292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档