EBDN - Community - Question & Answers

  Thursday, 18 July 2019
  1 Replies
  1.4K Visits
0
Votes
Undo
Hi,

I have some problem with my datagrid combobox. As in the image1 is my datagrid with the user name and the group names that i will like to assign the user to. After i select the group names for each user as in image2 as i scroll down to select the group for other users and then when i scroll back to top, the datagrid combobox becomes empty as in image3 except for the one selected row.

How can I avoid this problem to select all the datagrid combobox value even when i scroll down or up in the datagrid?


Below are my codes:

UserWindow.xaml

<DataGrid AlternatingRowBackground="AliceBlue" AlternationCount="2" Background="White" BorderBrush="DarkGray" Height="273" ColumnHeaderHeight="23" CanUserAddRows="False" HorizontalAlignment="Center" Margin="24,140,24,0" VerticalAlignment="Top" ItemsSource="{Binding MyData}" AutoGenerateColumns="False" SelectedItem="{Binding MySelectedItem, Mode=TwoWay}">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="" Binding="{Binding Checkbox, Mode=TwoWay}" MinWidth="25">

</DataGridCheckBoxColumn>
<DataGridTextColumn Header=" User" Binding="{Binding User, Mode=TwoWay}" Width="*" >

</DataGridTextColumn>
<DataGridTemplateColumn Header=" Group" Width="*">

<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Margin="2" Height="30" Text="Select Group" SelectedItem="{Binding SelGroup}" ItemsSource="{Binding Group}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding GroupName}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>


ModelClass.cs


namespace TokenLicenseUsageReport
{
public class ModelClass:Helpers.VmBase
{
private ModelClass _SelGroup;
public ModelClass SelGroup
{
get { return _SelGroup; }
set { _SelGroup = value; OnPropertyChanged("SelGroup";); }
}
private ObservableCollection<ModelClass> _group;
public ObservableCollection<ModelClass> Group
{
get { return _group; }
set
{
_group = value;
OnPropertyChanged("Group";);
}
}
private string _user;
public string User
{

get { return _user; }
set
{
_user = value;
OnPropertyChanged("User";);
}
}
public ObjectItem Source { get; set; }
private bool _Checkbox = true;
public bool Checkbox
{
get
{
return _Checkbox;
}
set
{
_Checkbox = value;
OnPropertyChanged("Checkbox";);

}
}
public string GroupName { get; set; }

public ModelClass(ObjectItem source)
{
Source = source;
GroupName = source.Name;


}

public ModelClass()
{
}
}
}


VmUserWindow.cs


private ObservableCollection<ModelClass> _group2;
public ObservableCollection<ModelClass> Group2
{
get { return _group2; }
set
{
_group2 = value;
OnPropertyChanged("Group2";);
}
}
private ObservableCollection<ModelClass> _MyData;
public ObservableCollection<ModelClass> MyData
{
get { return _MyData; }
set
{
_MyData = value;
OnPropertyChanged("MyData";);
}
}
public HashSet<string> debug2;
public string FilePlace { get; set; }
public ObjectCollection TokenTemplate;
public Application myApplication;
public ICommand CmdRun { get; private set; }
public ICommand CmdCancel { get; private set; }
public ICommand CmdAdd { get; private set; }
public ModelClass MySelectedItem { get; set; }
public UserWindow user;
public HashSet<string> debug;
public HashSet<AddtoExcel> addtoexcel;
public ICollectionView Customers { get; set; }
public ICollectionView GroupedCustomers { get; set; }
public List<VmDateWindow.GroupFile> GroupFiles;
public string NewGroup { get; set; }
public struct AddtoExcel
{
public string member { get; set; }
public string group { get; set; }
}
public struct GetRow
{
public int RowID { get; set; }
public int ColID { get; set; }
public string Group { get; set; }
public string Member { get; set; }
}
public VmUserWindow(UserWindow user, HashSet<string> debug, List<VmDateWindow.GroupFile> GroupFiles, Application myApplication, string FilePlace)
{
MyData = new ObservableCollection<ModelClass>();
CmdAdd = new Helpers.RelayCommand(ExeAdd);
this.FilePlace = FilePlace;
CmdRun = new Helpers.RelayCommand(ExeRun);
CmdCancel = new Helpers.RelayCommand(ExeCancel);
this.user = user;
this.myApplication = myApplication;
addtoexcel = new HashSet<AddtoExcel>();

debug2 = new HashSet<string>();
Group2 = new ObservableCollection<ModelClass>();

Group2.Add(new ModelClass() { GroupName = "GOPReinach" });

foreach (var item in debug)
{
MyData.Add(new ModelClass() { User = item, Group = Group2 });
}

}