wpf - 列表框不显示 observablecollection 的内容
问题描述
我已经使用 mvvm 模型和连接到 azure 的 sql 数据库创建了一个应用程序。当我尝试在数据库中获取信息时,我的列表框检测到集合中有多少对象并显示列表的路径而不是内容。
我已经尝试过我的 sql 查询,这只是很好地返回了数据。
看法:
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>
视图模型:
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());
}
}
}
数据服务类:
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)。
解决方案
将DisplayMemberPath
属性设置为“naam”或Wagen
您要显示的类的属性名称:
<ListBox ItemsSource="{Binding Path=Wagens}" DisplayMemberPath="naam" />
推荐阅读
- bpf - AF_XDP 能否将数据包重新注入内核?
- r - 通过 paste() 修改悬停格式时,ggplot 更改输出样式
- javascript - 如何获取用户的当前位置并相应地渲染组件
- c# - 连接到数据库后如何从表单选择中输出数据 - asp.net c#
- c# - 确定/取消按钮在 UWP 应用程序中没有第二次显示的问题
- laravel - laravel 中获取相关数据
- javascript - 同一组件的多个实例在 VueJS 中不是独立的
- javascript - JSON 中的值未定义
- ruby-on-rails - 如何使用 sqlmap 扫描整个应用程序(全站扫描)?
- python - 我的服务器(Python 套接字)有什么问题?