0

UI にデータグリッドを表示したいと考えています。ビューモデルのデータセットにバインドしています。コードは次のとおりです。

意見:

        <StackPanel Orientation="Horizontal" Height="Auto" Name="stackPanel4" Width="Auto" Grid.Row="4">
            <DataGrid Name="QueryGrid" AutoGenerateColumns="True" Height="1000" Width="1000" ItemsSource="{Binding QueryTable}" Visibility="{Binding Path=QueryGridVisiblity, Converter={StaticResource BoolToVis}}" />
        </StackPanel>

ビューモデル:

    private void OnRunQuery()
    {
        int count = 0;
        DataSet queryDataset = null;
        if (flag1 == true)
            count++;
        else if (flag2 == true)
            count++;
        else if (flag3 == true)
            count++;
        else if (flag4 == true)
            count++;
        else if (flag5 == true)
            count++;
        else if (flag6 == true)
            count++;
        if (paramCount > 0 && sqlQuery != null && paramCount == count)
        {
            queryDataset = _service.GetQueryDataSource(sqlQuery);
            m_QueryTable = queryDataset;
            OnPropertyChanged("QueryTable");
            m_Visibility = true;
            OnPropertyChanged("QueryGridVisiblity");
        }
    }
    private DataSet m_QueryTable;

    public DataSet QueryTable
    {
        get
        {
            return m_QueryTable;
        }
        set
        {
            m_QueryTable = value;
            OnPropertyChanged("QueryTable");
        }
    }

アプリケーションを実行すると、データグリッドは読み込まれません。しかし、私は自分のデータセットでデータを取得します。

ロジックが欠けている提案はありますか? 私はWPFが初めてです。

4

3 に答える 3

1

引用符なしでテーブル名を使用する

例えば:

ItemsSource="{Binding ProductsDataSet.Tables[Products]}"

于 2014-05-24T14:53:48.197 に答える
1

ADataSetは の集合でDataTableあり、aDataGridは 1 つだけを示しますDataTableDataTableの代わりにプロパティを公開しDataSetます。

于 2013-06-18T23:53:19.027 に答える