2

をDataGridにバインドしObservableCollectionていますが、空白の行からobservablecollectionにアイテムを追加できるようにしたいと考えています。ただし、実行時にリストが空の場合、この空白行は表示されません。私はこの問題を調べました、私は持っていますCanUserAddRows=true、私は持っていますIsReadOnly=false、そして私はデータグリッドのデータコンテキストを監視可能なコレクションに設定しました、そして私は空のコンストラクターを持っています、そしてそれはまだ機能していません。これが私がこれまでに持っているものです:

XAMLの場合:

<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Source={StaticResource CostCenterListViewSource}}" Name="costCenterListDataGrid" VerticalAlignment CanUserAddRows="True" CanUserDeleteRows="True" IsReadOnly="False">
    <DataGrid.Columns>
        <DataGridTextColumn x:Name="nameColumn" Binding="{Binding Path=Name, Mode=TwoWay}" Header="Cost Center" Width="102" />
        <DataGridTextColumn x:Name="glCodeColumn" Binding="{Binding Path=GlCode, Mode=TwoWay}" Header="Gl Code" Width="80" />
        <DataGridTextColumn x:Name="costCenterPercentageColumn" Binding="{Binding Path=CostCenterPercentage, Mode=TwoWay}" Header="%" Width="30" />
    </DataGrid.Columns>
</DataGrid>

私の背後にあるコードにはこれがあります:

costCenterListDataGrid.DataContext = item.CostCenterList;
//when "item" was instantiated, it also created a new instance: costCenterList = new ObservableCollection<CostCenter>();

そしてCostCenterクラスで私は持っています:

public CostCenter()
{
}

public string Name
    {
        get { return name; }
        set
        {
            if (String.IsNullOrEmpty(Name) || !Name.Equals(value))
            {
                name = value;
                OnPropertyChanged("Name");
            }
        }
    }

    public string GlCode
    {
        get { return glCode; }
        set 
        {
            if (String.IsNullOrEmpty(GlCode) || !GlCode.Equals(value))
            {
                glCode = value;
                OnPropertyChanged("GlCode");
            }
        }
    }

    public double CostCenterPercentage
    {
        get { return cPercentage; }
        set
        {
            if (CostCenterPercentage != value)
            {
                cPercentage = value;
                OnPropertyChanged("CostCenterPercentage");
            }
        }

    }

編集:これは私のWindow.Resourcesにあるものです

<Window.Resources>
    <CollectionViewSource x:Key="jobItemViewSource1" d:DesignSource="{d:DesignInstance my:JobItem, CreateList=True}" />
    <CollectionViewSource x:Key="jobItemNotesHistoryViewSource" Source="{Binding Path=NotesHistory, Source={StaticResource jobItemViewSource1}}" />
    <CollectionViewSource x:Key="CostCenterListViewSource" Source="{Binding Path=CostCenterList, Source={StaticResource jobItemViewSource1}}" />
    <CollectionViewSource x:Key="CostCenterListAfesViewSource" Source="{Binding Path=Afes, Source={StaticResource CostCenterListViewSource}}" />
</Window.Resources>
4

0 に答える 0