0

objectdataprovider を使用して、返されたデータセット DefaultView のすべての列 (たとえば、すべての 2 つ) をデータグリッドに表示しないようにするには、どのコードを追加できますか? このチュートリアルを使用して、この作業コードを記述しました。

XAML コードのウォーキングは次のとおりです。

<Window x:Class="wpf_2._0.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:wpf_2._0"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <!-- create an instance of our DataProvider class -->
        <ObjectDataProvider x:Key="robot_data"
             ObjectType="{x:Type local:robot_data}"/>
        <!-- define the method which is invoked to obtain our data -->
        <ObjectDataProvider x:Key="РОБОТ"
             ObjectInstance="{StaticResource robot_data}"
             MethodName="get_robot_data"/>
    </Window.Resources>
    <Grid >
            <DataGrid ItemsSource="{Binding Source={StaticResource РОБОТ}}" AutoGenerateColumns="True" HorizontalAlignment="Left"  Margin="85,127,0,0" VerticalAlignment="Top" Height="133" Width="265" SelectionChanged="DataGrid_SelectionChanged_1"/>
    </Grid>
</Window>

解決

<Window x:Class="wpf_2._0.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:wpf_2._0"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <!-- create an instance of our DataProvider class -->
        <ObjectDataProvider x:Key="robot_data"
            ObjectType="{x:Type local:robot_data}"/>
        <!-- define the method which is invoked to obtain our data -->
        <ObjectDataProvider x:Key="РОБОТ"
          ObjectInstance="{StaticResource robot_data}"
          MethodName="get_robot_data"/>
    </Window.Resources>
    <Grid >
        <DataGrid ItemsSource="{Binding Source={StaticResource РОБОТ}}" AutoGenerateColumns="False" HorizontalAlignment="Left"  Margin="30,73,0,0" VerticalAlignment="Top" Height="133" Width="97">
            <!-- create an instance of our DataProvider class -->
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding Path=имя_робота}" Header="Имя робота"/>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</Window>
4

1 に答える 1

0

Datagrid で Autogenerate columns を false に変更します。

Dataset が Id、Name、および Address の 3 つの列を返し、Name をスキップする場合は、これらの列を DataGrid.Columns に追加し、バインディング パスを指定します。

これを試して:

<DataGrid ItemsSource="{Binding Source={StaticResource РОБОТ}}" AutoGenerateColumns="False" HorizontalAlignment="Left"  
  Margin="85,127,0,0" VerticalAlignment="Top" Height="133" Width="265" SelectionChanged="DataGrid_SelectionChanged_1">
            <DataGrid.Columns>
                   <DataGridTextColumn Header="id" Binding="{Binding Path=Id}"/>
                    <DataGridTextColumn Header="address" Binding="{Binding Path=Address}"/>
            </DataGrid.Columns>
</DataGrid>
于 2013-09-30T11:37:58.007 に答える