WPF MVVM은 Grid / DataGrid에 두 개의 컨트롤이있는 행을 동적으로 추가합니다.

호기심

나는 mvvm을 연구하고 있으며 동적 추가로이 문제에 직면합니다. 간단한 win 형식에서 DataRow에 대한 하나의 루프와 몇 가지 사양만으로 쉽게이 작업을 수행했습니다. 따라서 작업은 문자열 목록의 모든 요소를 ​​Grid / DataGrid에 배치하는 것입니다. , 두 개의 열-첫 번째는 확인란이고 두 번째는 문자열 기반 컨트롤입니다. 가장 좋은 아이디어는 DataGrid를 사용하는 것입니다. 그래서이 DataGrid와 버튼, 그리고 ViewModel에 대한 별도의 파일을 사용하여 wpf 대화 상자를 만들었습니다. 이제 내 ViewModel 클래스에는 문자열 목록이 포함됩니다. 그리고 나는 .. 나는 ObservableCollection<UIElement>내 경우에 두 개의 컨트롤과 함께 DataGridRow (??)를 보유해야하는 일부에 대해 읽었습니다 ..

편집 : <DataGridCheckBoxColumn확인란과 <DataGridTemplateColumn제어를 위해 노력하고 있습니다. 이제 질문은이 두 열을 문자열 목록으로 바인딩하는 것입니다. 제어 할 문자열 값을 전달하고 모두 OK입니다. 나는 그것을 사용할 필요 ObservableCollection가 있습니까?

에미 밥

행과 열의 모음으로 보는 대신 mvvm을 사용하여 wpf에서 datagrid를 바인딩 할 때 객체 모음으로 간주합니다. 각 행은 개별 객체를 나타내고 각 열은 해당 객체의 속성을 나타냅니다. 따라서 귀하의 경우에는 그리드에 표시되는 것을 나타내는 클래스를 만들어야하며 여기에는 부울과 문자열 속성이 있습니다 (설명한 2 개의 열에서 사용).

public class MyListItem : ImplementPropertyChangedStuff
{
    private string _myString;
    private bool _myBool;

    public MyListItem()
    { }

    public string MyStringProperty
    {
        get { return _myString; }
        set
        {
            _myString = value;
            this.RaisePropertyChanged("MyStringProperty");
        }
    }

    public bool MyBoolProperty
    {
        get { return _myBool; }
        set
        {
            _myBool = value;
            this.RaisePropertyChanged("MyBoolProperty");
        }
    }
}

이제 뷰 모델에서 각 열에 대해 별도의 목록을 갖는 대신 단일 목록을 가질 수 있습니다. 행을 추가 / 제거 / 편집하려면 Observable 컬렉션을 사용해야합니다. 속성 변경 내용이 내장되어 있고 컬렉션이 변경되면 UI를 업데이트하기 때문입니다.

public class MyViewModel
{
   private ObservableCollection<MyListItem> _items;
   public ObservableCollection<MyListItem> Items
    {
        get { return _items; }
        set
        {
            _items = value;
            this.RaisePropertyChanged("Items");
        }
    }

 public MyViewModel()
 {
    this.Items = new ObservableCollection<MyListItem>();
    this.LoadMyItems();
 }

 public void LoadMyItems()
 {
    this.Items.Add(new MyListItem { MyBoolProperty = true, MyStringProperty = "Hello" };
 }
}

마지막으로 DataGrid 바인딩 :

<DataGrid ItemsSource="{Binding Path=Items, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="False">
  <DataGrid.Columns>
    <DataGridCheckBoxColumn Header="MyBoolProperty" Binding="{Binding Path=MyBoolProperty}"
    <DataGridTextColumn Header="MyStringProperty" Binding="{Binding Path=MyStringProperty"/>
  </DataGrid.Columns>
</DataGrid>

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

동일한 창 WPF에 두 개의 탭 컨트롤을 추가하는 방법은 무엇입니까?

분류에서Dev

WPF는 동일한 컨트롤의 두 종속성 속성을 바인딩하지만 두 개의 데이터 컨텍스트가 필요합니다.

분류에서Dev

DataGrid C # WPF에서 동적으로 행하는 방법은 무엇입니까?

분류에서Dev

UWP의 DataGrid에 동적으로 행을 추가하는 방법은 무엇입니까?

분류에서Dev

행과 열 레이아웃간에 동적으로 이동하는 데 사용할 수있는 WPF 레이아웃 컨트롤이 있습니까?

분류에서Dev

WPF DataGrid의 LoadingRow 이벤트에서 행 색상을 번갈아 가며 행 색상을 두 배로 늘립니다.

분류에서Dev

WPF MVVM의 컨트롤에 두 컬렉션을 바인딩하는 적절한 방법

분류에서Dev

WPF MVVM의 컨트롤에 두 컬렉션을 바인딩하는 적절한 방법

분류에서Dev

컨트롤을 Grid 컨트롤에 배치 한 것처럼 노출하는 WPF DataGrid의 대안

분류에서Dev

두 컨트롤러에 동일한 RequestMapping 경로 값이있는 경우 컨트롤러 이름을 지정하는 방법은 무엇입니까?

분류에서Dev

Windows Phone 8 앱의 각 목록 항목 행에 두 개의 그리드 컨트롤을 동적으로 표시

분류에서Dev

Android의 각 행에 2 개의 버튼을 동적으로 추가하는 방법은 무엇입니까?

분류에서Dev

MVVM은 스크롤 뷰에 동적으로 요소를 추가합니다.

분류에서Dev

두 개의 열과 동적 열 이름으로 SQL PIVOT을 수행하는 방법은 무엇입니까?

분류에서Dev

서로 다른 모듈을 가진 두 개의 서로 다른 컨트롤러가있는 서비스를 사용하여 서로 다른 모듈간에 데이터를 전달하는 방법은 무엇입니까?

분류에서Dev

WPF에서 컨트롤을 동적으로 다시 정렬

분류에서Dev

두 개의 Silverlight 클라이언트 응용 프로그램에서 사용자 정의 컨트롤을 다시 사용하는 방법은 무엇입니까?

분류에서Dev

MVVM을 사용하여 WPF의 DataGrid에있는 ComboBox에 새 요소 추가

분류에서Dev

두 개의 다른 테이블에서 두 열을 부분적으로 동기화하는 SQL 업데이트

분류에서Dev

이 두 코드의 차이점을 찾는 방법은 무엇입니까? 둘 다 실행될 때 동일한 대답을 제공하지만 웹 사이트에서 하나의 코드가 부분적으로 정확하다고 말합니다

분류에서Dev

Ruby on Rails 컨트롤러에서 다른 속성 이름으로 두 개의 다른 테이블을 수동으로 조인하는 방법

분류에서Dev

테이블의 각 행에서 개별적으로 두 개의 조인을 수행합니까?

분류에서Dev

한 컨트롤러의 UILabel을 다른 컨트롤러에서 동적으로 업데이트하는 데 문제가 있습니다. Objective-c에서 체크되는 체크 박스와 일치해야합니다.

분류에서Dev

WPF DataGrid : 개별 행에 대해 동적으로 생성 된 ContextMenu

분류에서Dev

동일한 창에서 두 개의 컨트롤이있는 연결된 속성을 사용하면 작동하지 않습니다.

분류에서Dev

JQuery는 7 개의 다른 선택에 대해 동적으로 선택하는 옵션을 추가합니다.

분류에서Dev

xslt에 때때로 null이 될 수있는 두 개의 값을 추가합니다.

분류에서Dev

부분적으로 겹쳐서 표시되는 두 개의 컨트롤 (Tabcontrol & Grid)

분류에서Dev

MVVM을 사용하여 Datatable의 WPF DataGrid에 동적 열 표시

Related 관련 기사

  1. 1

    동일한 창 WPF에 두 개의 탭 컨트롤을 추가하는 방법은 무엇입니까?

  2. 2

    WPF는 동일한 컨트롤의 두 종속성 속성을 바인딩하지만 두 개의 데이터 컨텍스트가 필요합니다.

  3. 3

    DataGrid C # WPF에서 동적으로 행하는 방법은 무엇입니까?

  4. 4

    UWP의 DataGrid에 동적으로 행을 추가하는 방법은 무엇입니까?

  5. 5

    행과 열 레이아웃간에 동적으로 이동하는 데 사용할 수있는 WPF 레이아웃 컨트롤이 있습니까?

  6. 6

    WPF DataGrid의 LoadingRow 이벤트에서 행 색상을 번갈아 가며 행 색상을 두 배로 늘립니다.

  7. 7

    WPF MVVM의 컨트롤에 두 컬렉션을 바인딩하는 적절한 방법

  8. 8

    WPF MVVM의 컨트롤에 두 컬렉션을 바인딩하는 적절한 방법

  9. 9

    컨트롤을 Grid 컨트롤에 배치 한 것처럼 노출하는 WPF DataGrid의 대안

  10. 10

    두 컨트롤러에 동일한 RequestMapping 경로 값이있는 경우 컨트롤러 이름을 지정하는 방법은 무엇입니까?

  11. 11

    Windows Phone 8 앱의 각 목록 항목 행에 두 개의 그리드 컨트롤을 동적으로 표시

  12. 12

    Android의 각 행에 2 개의 버튼을 동적으로 추가하는 방법은 무엇입니까?

  13. 13

    MVVM은 스크롤 뷰에 동적으로 요소를 추가합니다.

  14. 14

    두 개의 열과 동적 열 이름으로 SQL PIVOT을 수행하는 방법은 무엇입니까?

  15. 15

    서로 다른 모듈을 가진 두 개의 서로 다른 컨트롤러가있는 서비스를 사용하여 서로 다른 모듈간에 데이터를 전달하는 방법은 무엇입니까?

  16. 16

    WPF에서 컨트롤을 동적으로 다시 정렬

  17. 17

    두 개의 Silverlight 클라이언트 응용 프로그램에서 사용자 정의 컨트롤을 다시 사용하는 방법은 무엇입니까?

  18. 18

    MVVM을 사용하여 WPF의 DataGrid에있는 ComboBox에 새 요소 추가

  19. 19

    두 개의 다른 테이블에서 두 열을 부분적으로 동기화하는 SQL 업데이트

  20. 20

    이 두 코드의 차이점을 찾는 방법은 무엇입니까? 둘 다 실행될 때 동일한 대답을 제공하지만 웹 사이트에서 하나의 코드가 부분적으로 정확하다고 말합니다

  21. 21

    Ruby on Rails 컨트롤러에서 다른 속성 이름으로 두 개의 다른 테이블을 수동으로 조인하는 방법

  22. 22

    테이블의 각 행에서 개별적으로 두 개의 조인을 수행합니까?

  23. 23

    한 컨트롤러의 UILabel을 다른 컨트롤러에서 동적으로 업데이트하는 데 문제가 있습니다. Objective-c에서 체크되는 체크 박스와 일치해야합니다.

  24. 24

    WPF DataGrid : 개별 행에 대해 동적으로 생성 된 ContextMenu

  25. 25

    동일한 창에서 두 개의 컨트롤이있는 연결된 속성을 사용하면 작동하지 않습니다.

  26. 26

    JQuery는 7 개의 다른 선택에 대해 동적으로 선택하는 옵션을 추가합니다.

  27. 27

    xslt에 때때로 null이 될 수있는 두 개의 값을 추가합니다.

  28. 28

    부분적으로 겹쳐서 표시되는 두 개의 컨트롤 (Tabcontrol & Grid)

  29. 29

    MVVM을 사용하여 Datatable의 WPF DataGrid에 동적 열 표시

뜨겁다태그

보관