复选框bindnig到bool会导致应用程序处于中断模式

时间:2017-10-31 15:12:44

标签: wpf checkbox

我的wpf片段

    <DataGrid x:Name="abonamenty_grid" AutoGenerateColumns="False" HorizontalAlignment="Left" Margin="0,50,0,0" VerticalAlignment="Top" >
        <DataGrid.Columns>
            <DataGridTextColumn Header="Nabywca" Binding="{Binding nabywca}" Width="200" />
            <DataGridTextColumn Header="Odbiorca" Binding="{Binding odbiorca}" Width="200" />
            <DataGridTextColumn Header="Asortyment" Binding="{Binding czas_umowy_w_miesiącach}" Width="100" />
            <DataGridTextColumn Header="Kwota" Binding="{Binding kwota_abonamentu}" Width="*" />
            <DataGridCheckBoxColumn Header="Faktura auto" Binding="{Binding wystawiaj_automatycznie_fakturę}" Width="30" />
            <DataGridCheckBoxColumn Header="Fa auto na początku miesiąca" Binding="{Binding czy_fa_auto_na_początku_okresu}" Width="30" />
        </DataGrid.Columns>

我的查询片段

                     select new
                     {
                         abonament_id = myabonamenty.id_abonament,
                         asortyment = nexotowary.Nazwa,
                         nabywca = nexonabywcy.NazwaSkrocona,
                         odbiorca = nexoodbiorcy.NazwaSkrocona,
                         wystawiaj_automatycznie_fakturę = myabonamenty.wystawiaj_automatycznie_fakturę,
                         czy_fa_auto_na_początku_okresu = myabonamenty.czy_fa_auto_na_początku_okresu,
                         kwota_abonamentu = myabonamenty.kwota_abonamentu
                     }).ToList();

TextColumn绑定有效但CheckBoxColumn绑定。当使用CheckBox绑定应用程序替换页面进入中断模式时(我有一个窗口应用程序处于中断模式)。 wystawiaj_automatycznie_fakturę,czy_fa_auto_na_początku_okresu是布尔。

1 个答案:

答案 0 :(得分:0)

正确回答这个问题是创建myabo类:

    private class myabo
    {
        public int abonament_id { get; set; }
        public string asortyment { get; set; }
        public string nabywca { get; set; }
        public string odbiorca { get; set; }
        public bool automatyczna_faktura { get; set; }
        public bool? czy_fa_auto_na_początku_okresu { get; set; }
        public decimal kwota_abonamentu { get; set; }
    }

并更改选择:

        var query = (from myabonamenty in myNexo_ARWALEntities.ArAbonamenty
                     join nexotowary in myNexo_ARWALEntities.Asortymenty
                     on myabonamenty.nexo_towar equals nexotowary.Id
                     join myklienci in myNexo_ARWALEntities.ArKlienci
                     on myabonamenty.id_klient equals myklienci.id_klient
                     where (grupa_tw == null || (grupa_tw != null && nexotowary.Grupa_Id > 0))
                     where (kiedy_fakturować == null || myabonamenty.czy_fa_auto_na_początku_okresu == kiedy_fakturować)
                     join nexoodbiorcy in myNexo_ARWALEntities.Podmioty
                     on myklienci.Nexo_klient_odbiorca equals nexoodbiorcy.Id into nexoodbiorcyg
                     from nexoodbiorcy in nexoodbiorcyg.DefaultIfEmpty()

                     join nexonabywcy in myNexo_ARWALEntities.Podmioty
                     on myklienci.Nexo_klient_nabywca equals nexonabywcy.Id into nexonabywcyg
                     from nexonabywcy in nexonabywcyg.DefaultIfEmpty()

                     select new myabo
                     {
                         abonament_id = myabonamenty.id_abonament,
                         asortyment = nexotowary.Nazwa,
                         nabywca = nexonabywcy.NazwaSkrocona,
                         odbiorca = nexoodbiorcy.NazwaSkrocona,
                         automatyczna_faktura=myabonamenty.wystawiaj_automatycznie_fakturę,
                         czy_fa_auto_na_początku_okresu = myabonamenty.czy_fa_auto_na_początku_okresu,
                         kwota_abonamentu = myabonamenty.kwota_abonamentu
                     }).ToList();

        abonamenty_grid.ItemsSource = query;