Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF: кнопка + DataGrid = нет отображения. Почему? / 11 сообщений из 11, страница 1 из 1
21.01.2011, 01:53
    #37070460
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF: кнопка + DataGrid = нет отображения. Почему?
На формочке лежат кнопка и DataGrid ("dtg_Show")
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<Window x:Class="WpfAppTEST1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="384" Width="554">
    <Grid>
        <Button Content="appDICT" Height="23" HorizontalAlignment="Left" Margin="24,12,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
        <DataGrid RowHeight="30" FontSize="10" 
                  AutoGenerateColumns="True" Height="283" HorizontalAlignment="Left" 
                  Margin="24,41,0,0" Name="dtg_Show" VerticalAlignment="Top" 
                  Width="463" DataContext="{Binding}" />
    </Grid>
</Window>

Код кнопки

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
        private void button1_Click(object sender, RoutedEventArgs e)
        {

            if (cnnsql_Collector.State == ConnectionState.Closed)
            {
                cnnsql_Collector.Open();
            }

            using (tbl_appDICT ctx = new tbl_appDICT(cnnsql_Collector))
            { 
                var q = from item in ctx.appDICT
                        where item.dicNameID.Equals(-50)
                        select item;

                dtg_Show.ItemsSource = q; // <- НЕТ ОТОБРАЖЕНИЯ В ГРИДЕ
                // dtg_Show.ItemsSource = q.ToArray(); // <- ТАК ТОЖЕ НЕТ ОТОБРАЖЕНИЯ В ГРИДЕ

            }

        }

Запрос отрабатывает и в переменной q точно есть результат (5 строк и 7 столбцов)
До нажатия на кнопку грид вообще чистый, а после отработки появляется 5 пустых строк БЕЗ данных.
Что сделать чтобы отображение данных появилось?
...
Рейтинг: 0 / 0
21.01.2011, 11:27
    #37070870
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF: кнопка + DataGrid = нет отображения. Почему?
RegisteredUser,

как выглядит "item in ctx.appDICT"?
...
Рейтинг: 0 / 0
21.01.2011, 11:30
    #37070878
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF: кнопка + DataGrid = нет отображения. Почему?
LRRegisteredUser,

как выглядит "item in ctx.appDICT"?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
[Table()]
public sealed class appDICT
{
    
    [Column(AutoSync = AutoSync.OnInsert, DbType = "bigint", IsPrimaryKey = true, IsDbGenerated = true, UpdateCheck = UpdateCheck.Never)]
    public Int64 RecID;
    [Column(DbType = "varchar(200)", CanBeNull = false)]
    public string dicItem;
    [Column(DbType = "varchar(500)", CanBeNull = true)]
    public string dicItemValue;
    [Column(DbType = "varchar(200)", CanBeNull = true)]
    public string dicName;
    [Column(AutoSync = AutoSync.OnInsert, DbType = "bigint", IsPrimaryKey = false, IsDbGenerated = true, UpdateCheck = UpdateCheck.Never)]
    public Int64 dicNameID;
    [Column(DbType = "int", CanBeNull = true)]
    public Int32 dicItemSort;
    [Column(DbType = "datetime", IsDbGenerated = true, CanBeNull = false)]
    public DateTime dtStamp;
} //  class appDICT --------------------------------------------------------------------------------------------


public class tbl_appDICT: DataContext
 {
    public Table<appDICT> appDICT;
    public tbl_appDICT(SqlConnection connectionString)
        : base(connectionString)
    {
        //connectionString = connectionString;
    }
 }
...
Рейтинг: 0 / 0
21.01.2011, 11:35
    #37070888
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF: кнопка + DataGrid = нет отображения. Почему?
LRRegisteredUser,

как выглядит "item in ctx.appDICT"?
...
Рейтинг: 0 / 0
21.01.2011, 11:35
    #37070889
pitachek69
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF: кнопка + DataGrid = нет отображения. Почему?
ну так может указать гриду какое поле куда мапится?
Код: plaintext
1.
2.
3.
<dg:DataGrid.Columns>
        <dg:DataGridTextColumn Header="Name" Binding="{Binding Path=dicName}"/>
...

пример
...
Рейтинг: 0 / 0
21.01.2011, 11:36
    #37070893
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF: кнопка + DataGrid = нет отображения. Почему?
RegisteredUser,

вот и ответ - отображаться(биндиться) могут лишь свойства, а их нет ни одного :)
...
Рейтинг: 0 / 0
21.01.2011, 11:42
    #37070910
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF: кнопка + DataGrid = нет отображения. Почему?
pitachek69ну так может указать гриду какое поле куда мапится?
у датагрида AutoGenerateColumns="True" - должен "нашинковать" колонки для всех публичных свойств
...
Рейтинг: 0 / 0
21.01.2011, 11:50
    #37070943
pitachek69
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF: кнопка + DataGrid = нет отображения. Почему?
LR,

Ваша правда, поторопился
...
Рейтинг: 0 / 0
21.01.2011, 12:21
    #37071042
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF: кнопка + DataGrid = нет отображения. Почему?
А может можно как-то заставить DataGrid обновиться
(типа еще раз Bind явно дернуть после того как я ему вот это сказал: dtg_Show.ItemsSource = q;)
...
Рейтинг: 0 / 0
21.01.2011, 12:25
    #37071052
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF: кнопка + DataGrid = нет отображения. Почему?
RegisteredUser,

для байндинга нужны публичные свойства (а не члены), т.е. вместо
public Int64 RecID;
должно быть
public Int64 RecID {get; set;}
...
Рейтинг: 0 / 0
21.01.2011, 12:34
    #37071079
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF: кнопка + DataGrid = нет отображения. Почему?
LRRegisteredUser,

для байндинга нужны публичные свойства (а не члены), т.е. вместо
public Int64 RecID;
должно быть
public Int64 RecID {get; set;}

Шаман!

вот так надо сделать правильно

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
[Table()]
public sealed class appDICT
{
    [Column(AutoSync = AutoSync.OnInsert, DbType = "bigint", IsPrimaryKey = true, IsDbGenerated = true, UpdateCheck = UpdateCheck.Never)]
    public Int64 RecID {get; set;} 
    [Column(DbType = "varchar(200)", CanBeNull = false)]
    public string dicItem {get; set;} 
    [Column(DbType = "varchar(500)", CanBeNull = true)]
    public string dicItemValue {get; set;} 
    [Column(DbType = "varchar(200)", CanBeNull = true)]
    public string dicName {get; set;} 
    [Column(AutoSync = AutoSync.OnInsert, DbType = "bigint", IsPrimaryKey = false, IsDbGenerated = true, UpdateCheck = UpdateCheck.Never)]
    public Int64 dicNameID {get; set;} 
    [Column(DbType = "int", CanBeNull = true)]
    public Int32 dicItemSort {get; set;} 
    [Column(DbType = "datetime", IsDbGenerated = true, CanBeNull = false)]
    public DateTime dtStamp {get; set;} 
} //  class appDICT ----
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF: кнопка + DataGrid = нет отображения. Почему? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]