0

私の小さなプロジェクトは今ではかなり異なって見えます。これで、( Binding Pathを介して)ObservableCollection OC1全体とバインドしたいデータと、ケースを保存する場所( as )があります。プロパティ inは from の 1 つの値です(これは c のケースの 1 つです)。バインディングOKです。DatagridTextBoxColumnsObservableCollection OC2DatagridComboboxColumnItemsSourceBindingSelectedItemDatagridComboboxColumnOC1OC2DatagridTextBoxColumns

XAML:

<DataGrid x:Name="DGoc1" x:Uid="DGoc1" AutoGenerateColumns="False"
          AlternationCount="2" SelectionMode="Single" Margin="0,5,0,0" 
          HorizontalAlignment="Stretch">
  <DataGrid.Columns>

    <!-- This works fine -->
    <DataGridTextColumn Binding="{Binding Path=id}" Header="ID" 
                        Width="Auto" IsReadOnly="True"/>

    <!-- Dow to bind this properly?? -->
    <DataGridComboBoxColumn ItemsSource="{Binding OC2}" 
                            SelectedItemBinding="{Binding Path=valueFromOc1}"
                            Header="OC2Cases" Width="Auto"/>

C#(更新):

public class ClasswithSomeData
{
    public int id { get; set; }
    public string valueFromOc1 { get; set; }
}
public partial class DGCBC : Window
{
    public ObservableCollection<string> OC2 { get; set; }
    public ObservableCollection<ClasswithSomeData> OC1 { get; set;}

    private void tabPanel1_Loaded(object sender, RoutedEventArgs e)
    {
        LoadDG();
    }

public void LoadDG()
    {
    OC2 = new ObservableCollection<string>(someCases);

    OC1 = new ObservableCollection<ClasswithSomeData> { };
    OC1.Add(someData1);
    OC1.Add(someData2);
    OC1.Add(someData3);
    DGoc1.ItemsSource = OC1;

DatagridComboboxColumnこれを適切にバインドする方法は?いくつかの例を手伝ってください。

4

1 に答える 1

1

observablecollections はフィールドとして宣言されています:

public ObservableCollection<string> OC2;
public ObservableCollection<ClasswithSomeData> OC1;

プロパティである必要があります。

public ObservableCollection<string> OC2 {get;set;}
public ObservableCollection<ClasswithSomeData> {get;set;} 

INotifyPropertyChanged を忘れないでください。=)

于 2013-02-04T02:13:27.847 に答える