我有一個WPF應用程序與兩個DataGrid共享相同的ItemsSource。當我將其中一個DataGrid的IsReadOnly屬性設置爲true時,我失去了將記錄添加到其他DataGrid的功能。我仍然可以編輯第二個數據網格的內容,但不能添加記錄。WPF:兩個DataGrids,相同的ItemsSource,一個IsReadOnly,Bug?
這是打算?有沒有辦法解決這個問題?我可以爲DataGrid使用IsEnabled =「False」,但是我失去了滾動的能力。
下面是設置:
XAML:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<DataGrid Name="dgA" Grid.Row="0" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="FirstName" Binding="{Binding Path=FirstName}" />
<DataGridTextColumn Header="LastName" Binding="{Binding Path=LastName}" />
</DataGrid.Columns>
</DataGrid>
<DataGrid Name="dgB" Grid.Row="1" AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="FirstName" Binding="{Binding Path=FirstName}" />
<DataGridTextColumn Header="LastName" Binding="{Binding Path=LastName}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
C#:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
List<Person> persons = new List<Person>();
persons.Add(new Person() { FirstName = "Bob", LastName = "Johnson" });
persons.Add(new Person() { FirstName = "John", LastName = "Smith" });
dgA.ItemsSource = persons;
dgB.ItemsSource = persons;
}
class Person
{
public Person() { }
public string FirstName
{
get;
set;
}
public string LastName
{
get;
set;
}
}
}
你的意思是添加記錄以編程方式(即通過在MainWindow構造函數中的C#)? –
DataGrid出於IsReadOnly模式通常有一個可用於添加記錄的空行。此空白行在此實例中不再可用。我沒有嘗試以編程方式添加記錄。 – Khan
可能爲dgB設置單向數據綁定? –