簡體   English   中英

我怎么能用內部的BindingList綁定c#類?

[英]How I can Binding c# class with BindingList inside?

我有這個帶有BindingList的c#類

public class Jednotka
{
    // ~ctors

    public Jednotka()
    {
        CisloJednotky = "";
        PodilNaSVJCitatel = 0;
        PodilNaSVJJmenovatel = 1;
        TypJednotky = "";

        VlastniciJednotky = new BindingList<Vlastnik>();
    }

    public string CisloJednotky { get; set; }

    public int PodilNaSVJCitatel { get; set; }

    public int PodilNaSVJJmenovatel { get; set; }

    public string TypJednotky { get; set; }

    public BindingList<Vlastnik> VlastniciJednotky { get; set; }

}

和Vlastnik級

 public class Vlastnik : Osoba
{

    public Vlastnik()
    {
        this.PodilNaJednotceCitatel = 0;
        this.PodilNaJednotceJmenovatel = 1;
        this.Bydliste = "";
        this.Jmeno = "";
    }


    public int PodilNaJednotceCitatel { get; set; } 

    public int PodilNaJednotceJmenovatel { get; set; } 
}

我需要使用正確的“Jmeno”綁定到DataGrid“CisloJednotky”。

在我的程序中有很多“Jednotka”,每個人可能有一個或多個“Jmeno”。

我如何在DataGrid中顯示這兩個屬性。

我可以使用xaml Binding嗎?

我會嘗試將此發送到xaml

DataGridUcast.ItemsSource = SvJschuze.Jednotky;

並在xaml

<DataGrid Name="DataGridUcast" Grid.Row="1" 
                      AutoGenerateColumns="False"
                      ItemsSource="{Binding Jednotky/VlastniciJednotky}">
                <!--Height="{Binding ActualHeight, RelativeSource ={RelativeSource AncestorType = {x:Type Window}}}"-->
                    <DataGrid.Columns>
                        <DataGridTextColumn Header="Číslo" Binding="{Binding CisloJednotky}" MinWidth="100"/>
                        <DataGridTextColumn Header="Jméno" Binding="{Binding Path=Vlastnik.Jmeno}" MinWidth="330" Width="Auto"/>
                        <!--<DataGridTextColumn Header="Účast" MinWidth="50"/>-->
                        <DataGridCheckBoxColumn Header="Účast" Binding="{Binding Pritomen, XPath=Pritomen}" MinWidth="50"/>
                    </DataGrid.Columns>
                </DataGrid>

我會嘗試做更多的方法,但沒有成功。 我在DataGrid中只有“CisloJednotky”。 但只有一個數字雖然“CisloJednotky”有更多“Vlastnik”與“Jmeno”。

如果不是我的代碼和我的代碼。 我可以用英語再發一次。

非常感謝任何提示。

我有一個解決方案。 使用幫助課程。

public class Data
    {
        // ~ctors
        public Data()
        {
            Jmeno = "";
            Cislo = "";
            Pritomen = false;
        }

        public BindingList<Data> NaplnData(SVJschuze svJschuze, BindingList<Data> dataList)
        {

            foreach (var jednotka in svJschuze.Jednotky)
            {
                foreach (var vlastnik in jednotka.VlastniciJednotky)
                {
                    Data data = new Data();
                    data.Cislo = jednotka.CisloJednotky;
                    data.Jmeno = vlastnik.Jmeno;
                    dataList.Add(data);
                }
            }

            return dataList;
        }

        // Fields and properties
        public string Jmeno { get; set; }

        public string Cislo { get; set; }

        public bool Pritomen { get; set; }
    }

並填寫幫助類。

        Data data = new Data();
        DataList = new BindingList<Data>();
        data.NaplnData(SvJschuze, DataList);

        DataGridUcast.ItemsSource = DataList;

對我有益。 最好在xaml中使用DataGridComboBoxColumn來獲取Vlastnik類。 可以為Jednotka選擇正確的名稱。 但我不知道怎么做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM