-1

私はWPFを初めて使用するので、ご容赦ください。コンボボックスを含むデータグリッドがあります。

<DataGrid x:Name="dgData" AutoGenerateColumns="False" Margin="131,93,13,101" Grid.Column="1" SelectionChanged="dgData_SelectionChanged">
        <DataGrid.Columns>

            <DataGridTextColumn Binding="{Binding Subject}" Header="Subject" Width="100"/>

            <DataGridComboBoxColumn Header="Subject" x:Name="comboboxColumn1"/>

        </DataGrid.Columns>
 </DataGrid>

そして、次のコードを使用して、ユーザーがクリックしたコンボボックスに応じて異なる itemsources をロードします。

   private void dgData_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {


        if (dgData.SelectedIndex == 0)
        {
            comboboxColumn1.ItemsSource = resolution;
        } else if (dgData.SelectedIndex == 1)
        {
            comboboxColumn1.ItemsSource = codec;    
        }
    }

dgData をバインドする方法:

  List<TicketInfo> ticketsList = new List<TicketInfo> 
        {
            new TicketInfo{ Subject="File", Status="Open"},
            new TicketInfo{ Subject="Resolution", Status="Assigned"},

        };
        dgData.ItemsSource = ticketsList;

  public class TicketInfo
         {
            public string Subject { get; set; }
            public string Status { get; set; }
         }

ここで、ユーザーが値を選択したら、コンボボックスの値も取得する必要があります。異なるコンボボックスに異なるアイテムをロードして値を取得するよりエレガントな方法はありますか?

ありがとう!

4

1 に答える 1

2

dgData のバインド方法は示していません。

public class TicketInfo
{
   public string Subject { get; set; }
   public string Status { get; set; }
   public List<string> SubjectSubList { get; set; }
}    

2 番目の列を SubjectSubList にバインドします

List ticketList を作成するときは、解像度を最初の SubjectSubList に、コーデックを 2 番目に配置するだけです。

于 2012-11-01T18:38:04.700 に答える