하나의 열이있는 DataGrid에 콤보 박스가 표시됩니다. 현재 새 행은 예상대로 기존 행 아래에 표시됩니다.DataGrid가 하나의 새로운 행을 표시하지만 이후의 데이터는 표시하지 않습니다.
public class tbl_SecurityUserRoleGroup_Row
{
public int UserID { get; set; }
public int RoleGroupID { get; set; }
}
그리고 ListSecurityRoleGroup이 목록은 다음과 같습니다 : 내가있어 뒤에 코드에서
public class tbl_Security_RoleGroup_Row
{
public int ID { get; set; }
public string PublicID { get; set; }
public string Description { get; set; }
}
:
dgRoleGroups.DataContext = ListSecurityUserRoleGroup;
dgRoleGroups.ItemsSource = ListSecurityUserRoleGroup;
을 ListSecurityUserRoleGroup가의 ObservableCollection에이
<grid>
<DockPanel Grid.Column="0" Grid.Row="0">
<TextBlock DockPanel.Dock="Top" Text="Role Groups"/>
<DataGrid DockPanel.Dock="Bottom" Name="dgRoleGroups" AutoGenerateColumns="False" CanUserAddRows="True" CanUserDeleteRows="True" HorizontalAlignment="Left" ItemsSource="{Binding ListSecurityUserRoleGroup}">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Role Group" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding ListSecurityRoleGroup,
RelativeSource={RelativeSource AncestorType=UserControl}}"
DisplayMemberPath="Description" SelectedValuePath="ID"
SelectedValue="{Binding RoleGroupID}”/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</DockPanel>
</Grid>
아래의 그림은 첫 번째 행에 대한 바인딩이 작동하고 있음을 보여줍니다. 새로운 행이 생겨서 그 값을 선택할 수 있습니다.
그러나, 나는 다음 다른 새 행을 얻을 수 없습니다. 이것이 내가 풀려고하는 문제이다.
다른 게시물을 읽기 때문에 IEditableObject, INotifiyProperyChanged의 영역에 뭔가가 빠졌거나이 데이터 격자에 단 하나의 열만 있기 때문에 뭔가 어쩌면 ComboBox에서 트리거 할 필요가 있을지도 모릅니다. 빈 행을 볼 수 있고 그렇지 않은 경우 빈 행을 만들 수 있습니까?
내 문제를 일치하는 게시물을 찾을 수 없습니다했지만 내가이있을거야 ...
나는이 작업을 가지고 있지만 일단 DataGrids를 포함하지 않는 다른 솔루션, 내 옆에있는 작업이있을 수 있습니다를 콤보 박스의 2 열을 포함하는 DataGrid이며, 거기에서 작업해야합니다.
감사합니다; 그러나 지금은 새 행에서 드롭 다운을 시작하기 전에 세 번 클릭해야합니다. 처음 클릭하면 콤보 주변에 검은 색 테두리가 생깁니다. 두 번째는 파란색 강조 표시를 적용하고 세 번째는 드롭 다운을 활성화합니다. 나는이 문제를 해결할 수 있는지 알아볼 것입니다. 또한 텍스트 상자처럼 보이게 만드는 차이점을 볼 수 있습니다. - 감사합니다. – andrew