Eto: [WinForms] .Net Core 3.1์—์„œ GridView ์Šคํฌ๋กค์ด ์ถฉ๋Œํ•จ

์— ๋งŒ๋“  2020๋…„ 04์›” 17์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: picoe/Eto


๋‚˜๋Š” ์ด๊ฒƒ์„ ๋†“์„ ๋” ์ข‹์€ ์žฅ์†Œ๋ฅผ ์ƒ๊ฐํ•  ์ˆ˜ ์—†์—ˆ์ง€๋งŒ, ์ด๊ฒƒ์ด .Net Core 3.1์—์„œ ์™œ ์ด๊ฒƒ์ด ๊นจ์กŒ๋Š”์ง€์— ๋Œ€ํ•œ ์ •ํ™•ํ•œ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘

์ €๋Š” Windows(ํŠนํžˆ Forms ์‚ฌ์šฉ)์˜ .Net Core 3.1์—์„œ ํ”„๋กœ๊ทธ๋žจ ์ž‘์—…์„ ์‹œ์ž‘ํ–ˆ์œผ๋ฉฐ ์ถ”๊ฐ€ํ•  ์ฒซ ๋ฒˆ์งธ ์ปจํŠธ๋กค์€ GridView + DataTable ์ฝค๋ณด์˜€์Šต๋‹ˆ๋‹ค. ๋งˆ์šฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํฌ๋กค์„ ์‹œ๋„ํ•  ๋•Œ๊นŒ์ง€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ, ์Šคํฌ๋กค๋ฐ”๊ฐ€ ์‹œ๋„ํ•œ ๊ฒฐ๊ณผ์—์„œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•จ)

์‹ค์ œ ํ–‰๋™

๊ทธ๋ฆฌ๋“œ๋ฅผ ์Šคํฌ๋กคํ•˜๋ฉด ์–‘์‹์ด ์ถฉ๋Œํ•˜๊ณ  ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Unhandled exception. System.TypeLoadException: Could not load type 'System.Windows.Forms.DataGrid' from assembly 'System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
   at Eto.WinForms.ScrollMessageFilter.IsScrollable(Control control)
   at Eto.WinForms.ScrollMessageFilter.PreFilterMessage(Message& m)
   at System.Windows.Forms.Application.ThreadContext.ProcessFilters(MSG& msg, Boolean& modified)
   at System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)
   at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FPreTranslateMessage(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.Run(Form mainForm)
   at Eto.WinForms.Forms.ApplicationHandler.Run()
   at Eto.Forms.Application.Run(Form mainForm)
   at Your.Program.Main(String[] args) in Your.Program.cs:line here

๋‚˜๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฌธ์žฅ์—์„œ ์ด ์ถฉ๋Œ์˜ ์›์ธ์„ ์ œ๊ณตํ–ˆ์œผ๋ฉฐ ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Œ์„ ์•Œ ๋•Œ๊นŒ์ง€ ์ด๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๋ฒ„์ „์˜ .Net Core๋กœ ์ „ํ™˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ ์žฌํ˜„ ๋‹จ๊ณ„

  1. .Net Core 3.1 ์‚ฌ์šฉ
  2. Wiki์—์„œ GridView ์˜ˆ์ œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–‘์‹ ์‹คํ–‰
  3. ๋งˆ์šฐ์Šคํœ /ํŠธ๋ž™ํŒจ๋“œ๋ฅผ ์Šคํฌ๋กคํ•˜๊ณ  ์ถฉ๋Œ์„ ๊ฒฝํ—˜ํ•˜์‹ญ์‹œ์˜ค.

๋ฌธ์ œ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ฝ”๋“œ

https://github.com/picoe/Eto/wiki/GridView

๋ช…์„ธ์„œ

  • ๋ฒ„์ „: 2.5.0(Nuget)
  • ํ”Œ๋žซํผ: WinForms
  • ์šด์˜ ์ฒด์ œ: Windwos 10

์ œ ๋ฌธ์ œ๋ฅผ ๋ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :)

๋ชจ๋“  4 ๋Œ“๊ธ€

๋ฌธ์ œ๋ฅผ ์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. DataGrid๊ฐ€ .NET Core 3.1์—์„œ ์ œ๊ฑฐ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. https://docs.microsoft.com/en-us/dotnet/core/compatibility/winforms#removed -controls๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

.NET Core์šฉ์œผ๋กœ ๋นŒ๋“œํ•  ๋•Œ Eto.WinForms์— ์žˆ๋Š” ์ฐธ์กฐ๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. DataGrid๊ฐ€ .NET Core 3.1์—์„œ ์ œ๊ฑฐ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. https://docs.microsoft.com/en-us/dotnet/core/compatibility/winforms#removed -controls๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์˜ˆ, ์ด๋ฏธ ๋‚ด ๋ฌธ์ œ์˜ ์ƒ๋‹จ์— ์–ธ๊ธ‰ํ–ˆ๋Š”๋ฐ, ๊ทธ๊ฒƒ์ด ์•Œ๋ ค์ ธ์„œ ๊ธฐ์ฉ๋‹ˆ๋‹ค ๐Ÿ‘

์•„, ๊ฐ™์€ ํŽ˜์ด์ง€์— ๋งํฌ๋œ ์ค„ ๋ชฐ๋ž๋„ค์š”.. ๐Ÿ˜„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋น„๊ต์  ์‰ฝ๊ฒŒ ๊ณ ์น  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋Š” netcoreapp31 TFM์„ ์ถ”๊ฐ€ํ• ์ง€ ์•„๋‹ˆ๋ฉด #if 3.0 ์ด์ƒ์—์„œ ์ถ”๊ฐ€ํ• ์ง€์ž…๋‹ˆ๋‹ค..

์ƒˆ TFM์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๋กœ ๋…ธ์ถœํ•˜๋Š” ๋Œ€์‹  ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋” ๋‚˜์•„์งˆ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ด๊ฒƒ์€ ์ตœ์‹  CI ๋นŒ๋“œ์—์„œ ์ˆ˜์ •๋˜์–ด์•ผ ํ•˜๋ฉฐ 2.5.1์— โ€‹โ€‹ํฌํ•จ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰