MVP 프로젝트에서 DataGridView를 채우는 방법은 무엇입니까?

만타스 다스케비치우스

배경 스토리: Android용 재고 관리 애플리케이션을 만들고 있습니다(시도 중). 데이터 복제 테스트를 위해 간단한 WinForms 응용 프로그램을 만들었습니다. 이 앱의 목적은 단순히 SQL Server DB(DB 테이블 이름은 T_STOCK)에서 데이터를 로드하는 것입니다. 데이터 조작에는 Linq를 사용하고 로드에는 DataGridView를 사용하고 앱 아키텍처에는 MVP를 사용하려고 합니다.

문제: DataGrid를 데이터로 채우는 데 어려움을 겪고 있습니다. 나는 이미 구멍 데이터 그리드를 속성으로 전달하려고 시도했고 지금은 데이터 소스일 뿐입니다. 내가 뭔가를 놓치고 있습니까 아니면 다른 방식으로 수행해야합니까?

이것은 내 프로젝트에 있는 코드의 일부입니다.

모델:

using System;
using System.Linq;
using System.Configuration;
using InventoryManagment.Services.DE.SQLServer;
using System.Windows.Forms;

namespace InventoryManagment.Models
{
    public class Stock
    {
        private string _ConnectionString;
        object _DgView;

        public object DataGridViewItems { get; set; }

        DEDataContext oDB;
        BindingSource bindingSource;
        DataGridView dataGridView;

        public void GetStockAllRecords()
        {
            _ConnectionString = ConfigurationManager.
                ConnectionStrings["SimpleInventoryManagment_temp." +
                "Properties.Settings.dbInventoryMngConnectionString"].ToString();
            oDB = new Services.DE.SQLServer.DEDataContext(_ConnectionString);
            //int count = (from row in oDB.T_STOCKs select row).Count();

            bindingSource = new BindingSource();
            dataGridView = new DataGridView();
            var stock = from t_stock in oDB.T_STOCKs
                        select new
                        {
                            ID = t_stock.F_ID,
                            Name = t_stock.F_NAME,
                            Barcode = t_stock.F_BARCODE
                        };
            bindingSource.DataSource = stock;
            dataGridView.DataSource = bindingSource;
            _DgView = dataGridView.DataSource;
        }
    }
}

전망:

using System;

namespace InventoryManagment.Views
{
    public interface IStock
    {
        object DataGridViewItems { get; set; }
    }
}

증여자:

using System;
using System.Linq;
using InventoryManagment; 
using System.Windows.Forms;

namespace InventoryManagment.Presenters
{
    public class StockPresenter
    {
        Views.IStock StockView;
        Models.Stock stock = new Models.Stock();

        public StockPresenter(Views.IStock view) { StockView = view; }

        public void GetStockAllRecords()
        {
            stock.GetStockAllRecords();
            StockView.DataGridViewItems = stock.DataGridViewItems;
        }
    }
}

형태

using System;
using System.Windows.Forms;
using InventoryManagment;

namespace InventoryManagment
{
    public partial class FormMain : Form, Views.IStock
    {
        string BtnAddMsgBoxText;

        public FormMain()
        {
            InitializeComponent();
        }

        object Views.IStock.DataGridViewItems
        {
            get
            {
                return GrItems.DataSource;
            }
            set
            {
                GrItems.DataSource = value;
            }
        }

        private void FormMain_Load(object sender, EventArgs e)
        {
            Presenters.StockPresenter presenter = 
                new Presenters.StockPresenter(this);
            presenter.GetStockAllRecords();
        }
    }
}
만타스 다스케비치우스

글쎄, 내가 열심히 생각하고 있었던 것 같아요. @Reza Aghaei가 옳았습니다.

public void GetStockAllRecords()
{
    _ConnectionString = ConfigurationManager.
        ConnectionStrings["SimpleInventoryManagment_temp." +
        "Properties.Settings.dbInventoryMngConnectionString"].ToString();
    oDB = new Services.DE.SQLServer.DEDataContext(_ConnectionString);

    var stock = from t_stock in oDB.T_STOCKs
                select new
                {
                    ID = t_stock.F_ID,
                    Name = t_stock.F_NAME,
                    Barcode = t_stock.F_BARCODE
                };
    DataGridViewItems  = stock;
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

PyCharm에서 프로젝트를 제거하는 방법은 무엇입니까?

PyCharm에서 프로젝트를 제거하는 방법은 무엇입니까?

MVP GWT 프로젝트에서 ClientFactory를 사용해야하는 이유는 무엇입니까?

프로젝트에서 CocoaPods를 제거하는 방법은 무엇입니까?

Volley 프로젝트에서 .jar를 만드는 방법은 무엇입니까?

RecyclerView를 AppWidgetHostViews로 채우는 방법은 무엇입니까?

Visual Studio 2017 SDK에서 프로젝트 저장 이벤트를 가로채는 방법은 무엇입니까?

Fabric에서 프로젝트를 삭제하는 방법은 무엇입니까?

AWS에서 프로젝트를 구성하는 방법은 무엇입니까?

프로젝트 루트에서 프로젝트 루트 / 트렁크로 프로젝트를 이동하는 방법은 무엇입니까?

XCode에서 프로젝트 내에서 프로젝트를 제거하는 방법은 무엇입니까?

XCode에서 프로젝트 내에서 프로젝트를 제거하는 방법은 무엇입니까?

XCode에서 프로젝트 내에서 프로젝트를 제거하는 방법은 무엇입니까?

Xcode에서 AppCode로 프로젝트를 여는 방법은 무엇입니까?

현재 프로젝트에서 다른 Java 프로젝트를 참조하는 방법은 무엇입니까?

ArrayList에서 JComboBox를 채우는 방법은 무엇입니까?

NSArray에서 UITableView를 채우는 방법은 무엇입니까?

DataGrid에서 DropDownList를 채우는 방법은 무엇입니까?

Arraylist에서 AlertDialog를 채우는 방법은 무엇입니까?

스프레드 시트에서 날짜로부터 주를 채우는 방법은 무엇입니까?

Mac에서 Git 프로젝트를 여는 방법은 무엇입니까?

MYSQL C #에서 DataGridView 셀을 채우는 방법은 무엇입니까?

C ++ UWP 프로젝트에서 TimeSpan-Elements로 IVector를 초기화하고 채우는 방법은 무엇입니까?

다른 Java 프로젝트에서 Java 프로젝트를 사용하는 방법은 무엇입니까?

MVP에서 모델 상태를 복원하는 방법은 무엇입니까?

DataGridview - 목록 루프로 채우는 더 빠른 방법은 무엇입니까?

Android MVP 프로젝트에서 사용자 정의 ArrayAdapter를 처리하는 방법은 무엇입니까?

MS Project Online에서 웹 프로젝트용 프로젝트를 만드는 방법은 무엇입니까?

laravel에서 @empty를 채우는 방법은 무엇입니까?

TOP 리스트

  1. 1

    셀레늄의 모델 대화 상자에서 텍스트를 추출하는 방법은 무엇입니까?

  2. 2

    Blazor 0.9.0 및 ASP.NET Core 3 미리보기 4를 사용한 JWT 인증

  3. 3

    openCV python을 사용하여 텍스트 문서에서 워터 마크를 제거하는 방법은 무엇입니까?

  4. 4

    C # 16 진수 값 0x12는 잘못된 문자입니다.

  5. 5

    Excel : 합계가 N보다 크거나 같은 상위 값 찾기

  6. 6

    오류 : MSB4803 : MSBuild의 .NET Core 버전에서 "ResolveComReference"작업이 지원되지 않습니다.

  7. 7

    R에서 Excel로 내보낼 때 CET / CEST 시간 이동이 삭제됨

  8. 8

    node.js + postgres : "$ 1"또는 그 근처에서 구문 오류

  9. 9

    확대 후 하이 차트에서 Y 축이 잘못 정렬 됨

  10. 10

    EPPlus에서 행 높이를 설정할 때 이상한 동작

  11. 11

    Ionic 2 로더가 적시에 표시되지 않음

  12. 12

    MS Access 부분 일치 2 테이블

  13. 13

    EPPlus에서 병합 된 셀의 행 높이 자동 맞춤

  14. 14

    ExecuteNonQuery- 연결 속성이 초기화되지 않았습니다.

  15. 15

    ResponseEntity를 사용하고 InputStream이 닫히는 지 확인하는 적절한 스트리밍 방법

  16. 16

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  17. 17

    오류 : "const wchar_t *"유형의 인수가 "WCHAR *"유형의 매개 변수와 호환되지 않습니다.

  18. 18

    Java에서 이미지를 2 색으로 변환

  19. 19

    overflow-y를 사용할 때 스크롤 버벅 거림 줄이기 : scroll;

  20. 20

    Java에서 Apache POI를 사용하여 테이블 크기 및 간격을 단어로 설정하는 방법

  21. 21

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

뜨겁다태그

보관