当我尝试在ViewModel中绑定ObservableCollection时,我遇到了一个小错误。问题是它连接到web api以获取列表,但由于某种原因,它不够快。
我认为它与async / await有关,它不会在加载视图之前等待列表获取其数据。
代码:
public ObservableCollection<AvailableRoomModel> AvailableRooms { get; set; }
public ObservableCollection<AvailableRoomModel> List { get; set; }
AvailableRooms是正确的列表,List仅用于测试。
public RoomsViewModel(IGetAvailableRoomsService getAvailableRoomsService)
{
//Injection
_getAvailableRoomsService = getAvailableRoomsService;
//Initialize
AvailableRooms = new ObservableCollection<AvailableRoomModel>();
//Get all rooms
GetAvailableRooms();
List = new ObservableCollection<AvailableRoomModel>();
List.Add(new AvailableRoomModel { Id = 1, RoomNumber = "101", Occupied = true });
List.Add(new AvailableRoomModel { Id = 2, RoomNumber = "102", Occupied = true });
List.Add(new AvailableRoomModel { Id = 3, RoomNumber = "103", Occupied = true });
}
public async void GetAvailableRooms()
{
try
{
AvailableRooms = await _getAvailableRoomsService.getRooms();
}
catch (Exception e)
{
//TODO
}
}
已经测试过,如果我将ItemsControl绑定到名称为List的列表,它可以正常工作(它足够快)但绑定到AvailableRooms时它不起作用。
我真的不想在我可以点击的视图中使用searchCommand,只是想在显示视图之前填充列表。
有什么想法吗?
答案 0 :(得分:0)
问题是curl -H "Foo: Bar" http://localhost/cgi-bin/printenv.cgi
。如果您想等待方法,则其返回类型必须为Anonymous UUID: 1B68061F-68FC-BED2-559B-C8457A01380E
Sun Apr 24 16:03:12 2016
*** Panic Report ***
panic(cpu 6 caller 0xffffff7f92b72bd5): "GPU Panic: [<None>] 3 0 a0 d9 9 8 0 3 : NVRM[0/1:0:0]: Read Error 0x00000100: CFG 0xffffffff 0xffffffff 0xffffffff, BAR0 0x103e00000 0xffffff92013c9000 0x0e7150a2, D0, P3/4\n"@/Library/Caches/com.apple.xbs/Sources/AppleGraphicsControl/AppleGraphicsControl-3.12.6/src/AppleMuxControl/kext/GPUPanic.cpp:127
Backtrace (CPU 6), Frame : Return Address
0xffffff91fd61ae30 : 0xffffff800fadab12
0xffffff91fd61aeb0 : 0xffffff7f92b72bd5
0xffffff91fd61af90 : 0xffffff7f908241e0
0xffffff91fd61b050 : 0xffffff7f908f1ef4
0xffffff91fd61b090 : 0xffffff7f908f1f5f
0xffffff91fd61b110 : 0xffffff7f90b297a8
0xffffff91fd61b1b0 : 0xffffff7f90b413d2
0xffffff91fd61b1f0 : 0xffffff7f9096943a
0xffffff91fd61b220 : 0xffffff7f909693c5
0xffffff91fd61b250 : 0xffffff7f90a770c9
0xffffff91fd61b280 : 0xffffff7f90a78ea4
0xffffff91fd61b310 : 0xffffff7f90a79306
0xffffff91fd61b370 : 0xffffff7f90839636
0xffffff91fd61b3c0 : 0xffffff7f90a7d828
0xffffff91fd61b530 : 0xffffff7f90a7dc3a
0xffffff91fd61b5c0 : 0xffffff7f90928186
0xffffff91fd61b720 : 0xffffff7f90926ddf
0xffffff91fd61b760 : 0xffffff7f90936ffa
0xffffff91fd61b7c0 : 0xffffff7f90931337
0xffffff91fd61b7e0 : 0xffffff7f908eed6e
0xffffff91fd61b820 : 0xffffff7f908ede6f
0xffffff91fd61b890 : 0xffffff7f90827441
0xffffff91fd61b8b0 : 0xffffff7f90827ddb
0xffffff91fd61baa0 : 0xffffff7f9082815a
0xffffff91fd61bb40 : 0xffffff7f907d45c0
0xffffff91fd61bbc0 : 0xffffff7f907d3df2
0xffffff91fd61bc20 : 0xffffff7f907d574e
0xffffff91fd61bc60 : 0xffffff7f907864f5
0xffffff91fd61bcf0 : 0xffffff7f9077e10b
0xffffff91fd61bd20 : 0xffffff80100946b1
0xffffff91fd61bd70 : 0xffffff80100de2f9
0xffffff91fd61bde0 : 0xffffff800fb977a1
0xffffff91fd61be30 : 0xffffff800fadf283
0xffffff91fd61be60 : 0xffffff800fac28b8
0xffffff91fd61bea0 : 0xffffff800fad2665
0xffffff91fd61bf10 : 0xffffff800fbb8bda
0xffffff91fd61bfb0 : 0xffffff800fbeca96
Kernel Extensions in backtrace:
com.apple.iokit.IOGraphicsFamily(2.4.1)[172C2960-EDF5-382D-80A5-C13E97D74880]@0xffffff7f90774000->0xffffff7f907aefff
dependency: com.apple.iokit.IOPCIFamily(2.9)[4FE41F9B-2849-322A-BBF8-A94816C003D6]@0xffffff7f9032c000
com.apple.driver.AppleMuxControl(3.12.6)[44D361A1-4938-3AA5-9F73-9C909B66214B]@0xffffff7f92b64000->0xffffff7f92b77fff
dependency: com.apple.driver.AppleGraphicsControl(3.12.6)[1654475C-9A4B-386C-AFA8-0A530194A2F9]@0xffffff7f92b5c000
dependency: com.apple.iokit.IOACPIFamily(1.4)[5D7574C3-8E90-3873-BAEB-D979FC215A7D]@0xffffff7f90f7f000
dependency: com.apple.iokit.IOPCIFamily(2.9)[4FE41F9B-2849-322A-BBF8-A94816C003D6]@0xffffff7f9032c000
dependency: com.apple.iokit.IOGraphicsFamily(2.4.1)[172C2960-EDF5-382D-80A5-C13E97D74880]@0xffffff7f90774000
dependency: com.apple.driver.AppleBacklightExpert(1.1.0)[C49819CE-729A-36B2-9AC1-744A43DC236F]@0xffffff7f92b5f000
com.apple.nvidia.driver.NVDAResman(10.1)[8649777A-3EED-3F2F-8B12-FBC5517F62E6]@0xffffff7f907d2000->0xffffff7f90a4bfff
dependency: com.apple.iokit.IOPCIFamily(2.9)[4FE41F9B-2849-322A-BBF8-A94816C003D6]@0xffffff7f9032c000
dependency: com.apple.iokit.IONDRVSupport(2.4.1)[1114B99F-E439-329E-876D-1FEC4CF45DF6]@0xffffff7f907bb000
dependency: com.apple.iokit.IOGraphicsFamily(2.4.1)[172C2960-EDF5-382D-80A5-C13E97D74880]@0xffffff7f90774000
dependency: com.apple.AppleGraphicsDeviceControl(3.12.6)[F211EB28-182A-34BB-A610-87667618F925]@0xffffff7f907cb000
com.apple.nvidia.driver.NVDAGK100Hal(10.1)[EB8A5980-AB59-368A-8244-60A00C7A933C]@0xffffff7f90a57000->0xffffff7f90c05fff
dependency: com.apple.nvidia.driver.NVDAResman(10.1.0)[8649777A-3EED-3F2F-8B12-FBC5517F62E6]@0xffffff7f907d2000
dependency: com.apple.iokit.IOPCIFamily(2.9)[4FE41F9B-2849-322A-BBF8-A94816C003D6]@0xffffff7f9032c000
BSD process name corresponding to current thread: WindowServer
Mac OS version:
15E65
Kernel version:
Darwin Kernel Version 15.4.0: Fri Feb 26 22:08:05 PST 2016; root:xnu-3248.40.184~3/RELEASE_X86_64
Kernel UUID: 4E7B4496-0B81-34E9-97AF-F316103B0839
Kernel slide: 0x000000000f800000
Kernel text base: 0xffffff800fa00000
__HIB text base: 0xffffff800f900000
System model name: MacBookPro10,1 (Mac-C3EC7CD22292981F)
System uptime in nanoseconds: 8583589115
last loaded kext at 7720294530: com.apple.driver.AGPM 110.21.18 (addr 0xffffff7f92b3c000, size 122880)
loaded kexts:
net.telestream.driver.TelestreamAudio 1.0.5
com.logmein.driver.LogMeInSoundDriver 4.1.63f33
com.apple.driver.AGPM 110.21.18
com.apple.driver.ApplePlatformEnabler 2.6.0d0
com.apple.driver.X86PlatformShim 1.0.0
com.apple.driver.AppleMikeyHIDDriver 124
com.apple.driver.AppleOSXWatchdog 1
com.apple.driver.AppleMikeyDriver 274.7
com.apple.driver.AudioAUUC 1.70
com.apple.driver.AppleHDAHardwareConfigDriver 274.7
com.apple.driver.pmtelemetry 1
com.apple.iokit.IOUserEthernet 1.0.1
com.apple.driver.AppleHDA 274.7
com.apple.iokit.IOBluetoothSerialManager 4.4.4f4
com.apple.driver.AppleUpstreamUserClient 3.6.1
com.apple.Dont_Steal_Mac_OS_X 7.0.0
com.apple.GeForce 10.1.0
com.apple.driver.AppleIntelHD4000Graphics 10.1.4
com.apple.driver.AppleSMCLMU 208
com.apple.driver.ACPI_SMC_PlatformPlugin 1.0.0
com.apple.driver.AppleHV 1
com.apple.driver.AppleFIVRDriver 4.1.0
com.apple.driver.AppleBacklight 170.8.9
com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport 4.4.4f4
com.apple.driver.AppleSMCPDRC 1.0.0
com.apple.driver.AppleLPC 3.1
com.apple.driver.AppleThunderboltIP 3.0.8
com.apple.driver.AppleMuxControl 3.12.6
com.apple.driver.AppleIntelSlowAdaptiveClocking 4.0.0
com.apple.driver.AppleMCCSControl 1.2.13
com.apple.driver.AppleIntelFramebufferCapri 10.1.4
com.apple.nvidia.NVDAStartup 10.1.0
com.apple.driver.AppleUSBTCButtons 245.4
com.apple.iokit.IOBluetoothUSBDFU 4.4.4f4
com.apple.driver.AppleUSBTCKeyEventDriver 245.4
com.apple.driver.AppleUSBTCKeyboard 245.4
com.apple.driver.CoreStorageFsck 517.20.1
com.apple.driver.AppleFileSystemDriver 3.0.1
com.apple.AppleFSCompression.AppleFSCompressionTypeDataless 1.0.0d1
com.apple.AppleFSCompression.AppleFSCompressionTypeZlib 1.0.0
com.apple.BootCache 38
com.apple.driver.AirPort.Brcm4331 800.20.24
com.apple.driver.AppleSDXC 1.7.0
com.apple.iokit.AppleBCM5701Ethernet 10.2.0
com.apple.iokit.IOAHCIBlockStorage 2.8.5
com.apple.driver.AirPort.Brcm4360 1040.1.1a6
com.apple.driver.usb.AppleUSBEHCIPCI 1.0.1
com.apple.driver.AppleAHCIPort 3.1.8
com.apple.driver.AppleSmartBatteryManager 161.0.0
com.apple.driver.AppleACPIButtons 4.0
com.apple.driver.AppleRTC 2.0
com.apple.driver.AppleHPET 1.8
com.apple.driver.AppleSMBIOS 2.1
com.apple.driver.AppleACPIEC 4.0
com.apple.driver.AppleAPIC 1.7
com.apple.driver.AppleIntelCPUPowerManagementClient 218.0.0
com.apple.nke.applicationfirewall 163
com.apple.security.quarantine 3
com.apple.security.TMSafetyNet 8
com.apple.driver.AppleIntelCPUPowerManagement 218.0.0
com.apple.driver.DspFuncLib 274.7
com.apple.kext.OSvKernDSPLib 525
com.apple.iokit.IOSerialFamily 11
com.apple.driver.CoreCaptureResponder 1
com.apple.nvidia.driver.NVDAGK100Hal 10.1.0
com.apple.nvidia.driver.NVDAResman 10.1.0
com.apple.iokit.IOSurface 108.2.1
com.apple.driver.IOPlatformPluginLegacy 1.0.0
com.apple.iokit.IOBluetoothHostControllerUSBTransport 4.4.4f4
com.apple.iokit.IOBluetoothFamily 4.4.4f4
com.apple.driver.AppleHDAController 274.7
com.apple.iokit.IOHDAFamily 274.7
com.apple.iokit.IOAudioFamily 204.3
com.apple.vecLib.kext 1.2.0
com.apple.driver.AppleSMBusPCI 1.0.14d1
com.apple.driver.AppleThunderboltEDMSink 4.1.1
com.apple.driver.AppleThunderboltDPOutAdapter 4.1.3
com.apple.driver.AppleBacklightExpert 1.1.0
com.apple.driver.AppleGraphicsControl 3.12.6
com.apple.driver.X86PlatformPlugin 1.0.0
com.apple.driver.IOPlatformPluginFamily 6.0.0d7
com.apple.iokit.IOSlowAdaptiveClockingFamily 1.0.0
com.apple.iokit.IONDRVSupport 2.4.1
com.apple.driver.AppleSMC 3.1.9
com.apple.driver.AppleSMBusController 1.0.14d1
com.apple.iokit.IOAcceleratorFamily2 205.3
com.apple.AppleGraphicsDeviceControl 3.12.6
com.apple.iokit.IOGraphicsFamily 2.4.1
com.apple.iokit.IOSCSIArchitectureModelFamily 3.7.7
com.apple.driver.usb.IOUSBHostHIDDevice 1.0.1
com.apple.driver.AppleUSBMultitouch 250.5
com.apple.iokit.IOUSBHIDDriver 900.4.1
com.apple.driver.usb.cdc 5.0.0
com.apple.driver.usb.networking 5.0.0
com.apple.driver.usb.AppleUSBHostCompositeDevice 1.0.1
com.apple.driver.usb.AppleUSBHub 1.0.1
com.apple.driver.CoreStorage 517.20.1
com.apple.driver.AppleThunderboltDPInAdapter 4.1.3
com.apple.driver.AppleThunderboltDPAdapterFamily 4.1.3
com.apple.driver.AppleThunderboltPCIDownAdapter 2.0.2
com.apple.driver.AppleXsanScheme 3
com.apple.driver.AppleThunderboltNHI 4.0.4
com.apple.iokit.IOThunderboltFamily 6.0.2
com.apple.iokit.IOEthernetAVBController 1.0.3b3
com.apple.iokit.IO80211Family 1110.26
com.apple.driver.mDNSOffloadUserClient 1.0.1b8
com.apple.iokit.IONetworkingFamily 3.2
com.apple.driver.corecapture 1.0.4
com.apple.driver.AppleUSBMergeNub 900.4.1
com.apple.driver.usb.AppleUSBEHCI 1.0.1
com.apple.iokit.IOAHCIFamily 2.8.1
com.apple.driver.usb.AppleUSBXHCIPCI 1.0.1
com.apple.driver.usb.AppleUSBXHCI 1.0.1
com.apple.iokit.IOUSBFamily 900.4.1
com.apple.iokit.IOUSBHostFamily 1.0.1
com.apple.driver.AppleUSBHostMergeProperties 1.0.1
com.apple.driver.AppleEFINVRAM 2.0
com.apple.driver.AppleEFIRuntime 2.0
com.apple.iokit.IOHIDFamily 2.0.0
com.apple.iokit.IOSMBusFamily 1.1
com.apple.security.sandbox 300.0
com.apple.kext.AppleMatch 1.0.0d1
com.apple.driver.AppleKeyStore 2
com.apple.driver.AppleMobileFileIntegrity 1.0.5
com.apple.driver.AppleCredentialManager 1.0
com.apple.driver.DiskImages 417.2
com.apple.iokit.IOStorageFamily 2.1
com.apple.iokit.IOReportFamily 31
com.apple.driver.AppleFDEKeyStore 28.30
com.apple.driver.AppleACPIPlatform 4.0
com.apple.iokit.IOPCIFamily 2.9
com.apple.iokit.IOACPIFamily 1.4
com.apple.kec.pthread 1
com.apple.kec.corecrypto 1.0
com.apple.kec.Libm 1
Model: MacBookPro10,1, BootROM MBP101.00EE.B0A, 4 processors, Intel Core i7, 2.7 GHz, 16 GB, SMC 2.3f36
Graphics: Intel HD Graphics 4000, Intel HD Graphics 4000, Built-In
Graphics: NVIDIA GeForce GT 650M, NVIDIA GeForce GT 650M, PCIe, 1024 MB
Memory Module: BANK 0/DIMM0, 8 GB, DDR3, 1600 MHz, 0x80AD, 0x484D5434314753364D465238432D50422020
Memory Module: BANK 1/DIMM0, 8 GB, DDR3, 1600 MHz, 0x80AD, 0x484D5434314753364D465238432D50422020
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0xEF), Broadcom BCM43xx 1.0 (7.21.95.175.1a6)
Bluetooth: Version 4.4.4f4 17685, 3 services, 27 devices, 1 incoming serial ports
Network Service: AirPort, AirPort, en0
Serial ATA Device: APPLE SSD SD512E, 500.28 GB
USB Device: USB 2.0 Bus
USB Device: Hub
USB Device: FaceTime HD Camera (Built-in)
USB Device: USB 2.0 Bus
USB Device: Hub
USB Device: Hub
USB Device: Apple Internal Keyboard / Trackpad
USB Device: BRCM20702 Hub
USB Device: Bluetooth USB Host Controller
USB Device: USB 3.0 Bus
Thunderbolt Bus: MacBook Pro, Apple Inc., 23.4
或async void
。
Task
在ctor中你不能等待这个方法,所以你可以这样简单地调用这个方法:
Task<T>
更新:
您还应该在viewmodel中实现public async Task<IEnumerable<AvailableRoomModel>> GetAvailableRooms()
{
try
{
return await _getAvailableRoomsService.getRooms();
}
catch (Exception e)
{
//TODO
}
}
接口,并且必须使用完整属性才能引发public RoomsViewModel(IGetAvailableRoomsService getAvailableRoomsService)
{
//Injection
_getAvailableRoomsService = getAvailableRoomsService;
//Get all rooms
AvailableRooms =
new ObservableCollection<AvailableRoomModel>(
GetAvailableRooms().GetAwaiter().GetResult()
);
// ...
}
事件。 System.ComponentModel.INotifyPropertyChanged
本身实现了这个接口,但设置属性不会引发此事件,除非我们引发它。
PropertyChanged