0

DataGridSql Server テーブルにデータを挿入する必要があります。内部ではDataGridComboBoxコードブック (これは同じデータベースのテーブルです) からデータを選択し、このデータをバインド先のテーブルに挿入する必要がありますDataGrid。これは XAML です。

<DataGrid Name="dgrStavke" AutoGenerateColumns="False" Height="160" Width="600" HorizontalAlignment="Left" Margin="5" Grid.Row="7" Grid.ColumnSpan="4">
        <DataGrid.Columns>
            <DataGridTemplateColumn Header="Artikl ID">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <ComboBox Name="cmbArticle" Width="120" ></ComboBox>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>                    
            </DataGridTemplateColumn>
            <DataGridTextColumn Header="Article Name" Width="150"></DataGridTextColumn>
            <DataGridTemplateColumn Header="Usluga ID">
                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <ComboBox Name="cmbService" Width="120"></ComboBox>
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>
            </DataGridTemplateColumn>
            <DataGridTextColumn Header="Service Name" Width="150"></DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>

コンボボックスの記事で記事 ID を選択すると、次のDataGridTextColumn記事にこの記事の名前が表示されます。サービスについても同様です。いくつかの記事やサービスを挿入することが可能であり、それが私が使用する理由ですDatagrid.

これどうやってするの?

ありがとう。

4

2 に答える 2

0

以下のサンプルはあなたがあなたの目標を達成するのに役立つと思います

以下のXAMLで使用されるコードは、

<Window.Resources>
        <ObjectDataProvider x:Key="RecordValues" ObjectType="{x:Type local:RecordTemp}" MethodName="GetPersonList" >            
        </ObjectDataProvider>
    </Window.Resources>
    <Grid>
        <Grid>
            <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding}"
                  Margin="10,10,73,155" Name="dataGrid1">
                <DataGrid.Columns>
                    <DataGridComboBoxColumn Header="Artikl ID" Width="300" 
                                            SelectedValueBinding="{Binding SelectedPart, UpdateSourceTrigger=PropertyChanged}"                                            
                                            DisplayMemberPath="ArticleID"
                     ItemsSource="{Binding Source={StaticResource RecordValues}}" />

                    <DataGridTextColumn Header="Order Name" Binding="{Binding SelectedPart.ArticleName}" />
                </DataGrid.Columns>
            </DataGrid>            
        </Grid>
    </Grid>

以下のC#で使用されるコードは、

public class RecordTemp : INotifyPropertyChanged
{
    List<PartsList> _value = new List<PartsList>();

   public RecordTemp()
    {
        _value.Add(new PartsList() { ArticleID = "1", ArticleName = "one - 1", ArticleQuantity = 20 });
        _value.Add(new PartsList() { ArticleID = "2", ArticleName = "Two - 2", ArticleQuantity = 10 });
    }

    public List<PartsList> GetPersonList()
    {
        return _value;
    }

    private PartsList _SelectedPart;

    public PartsList SelectedPart
    {
        get { return _SelectedPart; }
        set
        {
            _SelectedPart = value;
             OnPropertyChanged("SelectedPart");
        }
    }

    public void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null  )
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }     


    #region INotifyPropertyChanged Members

    public event PropertyChangedEventHandler PropertyChanged;



    #endregion
}

 public class PartsList
{
    public string ArticleID { get; set; }
    public double ArticleQuantity { get; set; }
    public string ArticleName { get; set; }
    }

メインウィンドウでは、以下のコードがグリッドのバインドに役立つ可能性があります。

ObservableCollection<RecordTemp> RecordsTemp = new ObservableCollection<RecordTemp>();
RecordsTemp.Add(new RecordTemp());
RecordsTemp.Add(new RecordTemp());
dataGrid1.DataContext = RecordsTemp;   

何か説明が必要な場合はコメントしてください。お手伝いします

于 2013-01-24T12:21:35.557 に答える
0
((ComboBox)GRID.Columns[N].FindControl("cmbArticle")).COMBO-BOX-PROPERTY

これは正しい構文ですか? わかりませんが、あなたはそのようなものを探していると思います。

于 2013-01-21T13:37:28.677 に答える