Извлекая данные из базы данных, используя приведенный ниже код, я не могу понять, как поместить извлеченные данные в сортируемое представление данных?Использование sortablebindinglist.cs
Спасибо за помощь!
Я бы с удовольствием попробовал sortablebindinglist.cs, но не могу понять, были ли они вставлены в код или как прикреплены к моемуdata.
Любая помощь будет полезной и полезной!
Данные из EF должны быть в Datagridview и могут быть отсортированы, нажав на заголовки столбцов
, но я могуне могу понять sortablebindinglist.cs
и как применить его к моему коду
namespace DepotLab
{
public partial class FrmMain : Form
{
FileSystemWatcher _watchFolder = new FileSystemWatcher();
DepotTestLab db1;
public FrmMain(string str_val1, string str_val2, string str_val3)
{
InitializeComponent();
textBox1.Text = str_val1;
textBox2.Text = str_val2;
textBox3.Text = str_val3;
}
private void StartActivityMonitoring(string sPath)
{
_watchFolder.Path = sPath;
_watchFolder.NotifyFilter = System.IO.NotifyFilters.DirectoryName;
_watchFolder.NotifyFilter = _watchFolder.NotifyFilter | System.IO.NotifyFilters.FileName;
_watchFolder.NotifyFilter = _watchFolder.NotifyFilter | System.IO.NotifyFilters.Attributes;
_watchFolder.Changed += new FileSystemEventHandler(EventRaised);
_watchFolder.Created += new FileSystemEventHandler(EventRaised);
_watchFolder.Deleted += new FileSystemEventHandler(EventRaised);
try
{
_watchFolder.EnableRaisingEvents = true;
}
catch (ArgumentException)
{
}
}
//private void StopActivityMonitoring()
//{
// _watchFolder.EnableRaisingEvents = false;
//}
private delegate void AddLogText(string text);
private void TS_AddLogText(string text)
{
if (this.InvokeRequired)
{
AddLogText del = new AddLogText(TS_AddLogText);
Invoke(del, text);
}
else
{
Txtb1.Text += text;
}
}
private void EventRaised(object sender, System.IO.FileSystemEventArgs e)
{
switch (e.ChangeType)
{
case WatcherChangeTypes.Changed:
TS_AddLogText(string.Format("", e.Name));
break;
case WatcherChangeTypes.Created:
TS_AddLogText(string.Format("", e.Name));
break;
case WatcherChangeTypes.Deleted:
TS_AddLogText(string.Format("File {0} has been deleted\r\n", e.FullPath));
break;
default: // Another action
break;
}
}
private void FrmMain_Load(object sender, EventArgs e)
{
Pan1.Visible = false;
Pan2.Visible = false;
CmbSystemType.Items.Add("DSX");
CmbSystemType.Items.Add("DS2");
db1 = new DepotTestLab();
BindingSource bs = new BindingSource();
bs.DataSource = mainBindingSource;
db1.Configuration.ProxyCreationEnabled = false;
db1.Configuration.LazyLoadingEnabled = false;
mainBindingSource.DataSource = db1.Mains.Include("TestResults").ToList();
StartActivityMonitoring(@"C:\Depot");
if (textBox2.Text == "User")
{
string ul = "User";
Slabel1.Text = $"Current User = { textBox1.Text} { textBox3.Text } Access Level = {ul}";
// BtnAddUser.Visible = false;
}
else
{
string ul = "Admin";
Slabel1.Text = $"Current User = { textBox1.Text} { textBox3.Text } " +
$" Access Level = {ul}";
// BtnAddUser.Visible = true;
}
Slabel2.Text = "";
ShowTests();
}
private void ShowTests()
{
Main obj = mainBindingSource.Current as Main;
if (obj != null)
{
if (obj.TestResults != null)
{
testResultBindingSource.DataSource = obj.TestResults.ToList();
}
}
}
private async void Button1_Click(object sender, EventArgs e)
{
try
{
await db1.SaveChangesAsync();
MessageBox.Show("Your Data has been successefully saved.", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();
}
private void CmbModuleType_SelectedIndexChanged(object sender, EventArgs e)
{
CmbModuleType.Text.ToString();
}
private void CmbSystemType_SelectedIndexChanged_1(object sender, EventArgs e)
{
CmbModuleType.Items.Clear();
CmbModuleType.Text = "";
if (CmbSystemType.SelectedIndex == 0)
{
CmbModuleType.Items.Add("Drawer"); //0
CmbModuleType.Items.Add("EPOD"); //1
CmbModuleType.Items.Add("Incubator"); //2
CmbModuleType.Items.Add("Pipette"); //3
CmbModuleType.Items.Add("reader"); //4
CmbModuleType.Items.Add("SID"); //5
CmbModuleType.Items.Add("Washer"); //6
}
else if (CmbSystemType.SelectedIndex == 1)
{
CmbModuleType.Items.Add("Pipette"); //0
CmbModuleType.Items.Add("Reader/Incubator"); //1
CmbModuleType.Items.Add("SID"); //2
}
CmbSystemType.Text.ToString();
}
private void CmbModuleType_SelectedIndexChanged_1(object sender, EventArgs e)
{
CmbTestType.Items.Clear();
CmbTestType.Text = "";
if (CmbModuleType.SelectedIndex == 0 && CmbSystemType.SelectedIndex == 0) //DSX Drawer
{
CmbTestType.Items.Add("Self Test");
CmbTestType.Items.Add("500 Plate Cycle");
CmbTestType.Items.Add("Pipette Check");
CmbTestType.Items.Add("100 Plate Cycle");
}
else if(CmbModuleType.SelectedIndex == 1 && CmbSystemType.SelectedIndex == 0) //DSX EPOD
{
CmbTestType.Items.Add("Self test");
CmbTestType.Items.Add("200 Plate Cycle");
CmbTestType.Items.Add("Full Pipette test with Pipette S/N");
CmbTestType.Items.Add("10 hour 37 Degree");
CmbTestType.Items.Add("2 Hour 50 Degree");
CmbTestType.Items.Add("2 Hour 37 Degree");
CmbTestType.Items.Add("1 Hour 50 Degree");
}
else if (CmbModuleType.SelectedIndex == 2 && CmbSystemType.SelectedIndex == 0) //DSX Incubator
{
CmbTestType.Items.Add("Self Test and EPOD S/N");
CmbTestType.Items.Add("100 Plate Cycle");
CmbTestType.Items.Add("10 hour 37 Degree");
CmbTestType.Items.Add("2 Hour 50 Degree");
CmbTestType.Items.Add("2 Hour 37 Degree");
CmbTestType.Items.Add("1 Hour 50 Degree");
}
else if (CmbModuleType.SelectedIndex == 3 && CmbSystemType.SelectedIndex == 0) //DSX Pipette
{
CmbTestType.Items.Add("Self Test");
CmbTestType.Items.Add("Tip Alignment");
CmbTestType.Items.Add("Linearity");
CmbTestType.Items.Add("100 Plate Cycle");
CmbTestType.Items.Add("540 Level Detect");
CmbTestType.Items.Add("1080 Level Detect");
CmbTestType.Items.Add("625 Level Detect");
CmbTestType.Items.Add("1250 Level Detect");
CmbTestType.Items.Add("Jim Test");
CmbTestType.Items.Add("Pipette Collar Cycle Test");
CmbTestType.Items.Add("Artel Volume Verification");
}
else if (CmbModuleType.SelectedIndex == 4 && CmbSystemType.SelectedIndex == 0) //DSX Reader
{
CmbTestType.Items.Add("Self Test");
CmbTestType.Items.Add("Opsys MR Plate Verification");
CmbTestType.Items.Add("100 Plate Cycle");
CmbTestType.Items.Add("Pipette Check Plate read");
CmbTestType.Items.Add("25 Plate Cycle");
}
else if (CmbModuleType.SelectedIndex == 5 && CmbSystemType.SelectedIndex == 0) //DSX SID
{
CmbTestType.Items.Add("Self Test");
CmbTestType.Items.Add("50 Cycles of Sample Rack 1");
CmbTestType.Items.Add("50 Cycles of Sample Rack 2");
}
else if (CmbModuleType.SelectedIndex == 6 && CmbSystemType.SelectedIndex == 0) //DSX Washer
{
CmbTestType.Items.Add("Self Test");
CmbTestType.Items.Add("Washer calibration");
CmbTestType.Items.Add("100 Plate Cycle");
CmbModuleType.Items.Add("25 Plate Cycle");
}
else if (CmbModuleType.SelectedIndex == 0 && CmbSystemType.SelectedIndex == 1) //DS2 Pipette
{
CmbTestType.Items.Add("Toolbox Self Test");
CmbTestType.Items.Add("Matrix Self Test");
CmbTestType.Items.Add("Artel");
}
else if (CmbModuleType.SelectedIndex == 1 && CmbSystemType.SelectedIndex == 1) //DS2 Reader/Incubator
{
CmbTestType.Items.Add("Toolbox Self Test");
CmbTestType.Items.Add("Matrix Self Test");
CmbTestType.Items.Add("Reader Top Test");
CmbTestType.Items.Add("Reader Bottom Test");
CmbTestType.Items.Add("Incubator Top Test");
CmbTestType.Items.Add("Incubator Bottom Test");
}
else if (CmbModuleType.SelectedIndex == 2 && CmbSystemType.SelectedIndex == 1) //DS2 SID
{
CmbTestType.Items.Add("Toolbox Self Test");
CmbTestType.Items.Add("Matrix Self Test");
CmbTestType.Items.Add("Scan Test");
}
CmbModuleType.Text.ToString();
CmbTestType.Items.ToString();
}
private void BtnADDNew_Click(object sender, EventArgs e)
{
Pan1.Visible = true;
TxtSerial.Focus();
Main c = new Main();
db1.Mains.Add(c);
mainBindingSource.Add(c);
mainBindingSource.MoveLast();
}
private void BtnAddTest_Click(object sender, EventArgs e)
{
Pan2.Visible = true;
Main c = mainBindingSource.Current as Main;
if (c != null)
{
if (testResultBindingSource.DataSource == null)
testResultBindingSource.DataSource = c.TestResults.ToList();
TestResult a = new TestResult() { Main = c };
testResultBindingSource.Add(a);
testResultBindingSource.MoveLast();
db1.TestResults.Add(a);
TxtWorkOrder.Focus();
}
}
private void Button1_Click_1(object sender, EventArgs e)
{
Pan1.Visible = true;
Pan2.Visible = true;
}
private void TxtSearch_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)13)
{
if (string.IsNullOrEmpty(TxtSearch.Text))
{
mainBindingSource.DataSource = db1.Mains.Include("TestResults").ToList();
ShowTests();
}
else
{
if (RbSerialNumber.Checked == true)
{
var query = from o in db1.Mains.Include("TestResults")
where o.SerialNumber.Contains(TxtSearch.Text)
select o;
mainBindingSource.DataSource = query.ToList();
ShowTests();
}
else
{
var query = from o in db1.Mains.Include("TestResults")
where o.SystemType.Contains(TxtSearch.Text)
select o;
mainBindingSource.DataSource = query.ToList();
ShowTests();
RbSerialNumber.Checked = true;
}
}
}
else
{
mainBindingSource.DataSource = db1.Mains.Include("TestResults").ToList();
ShowTests();
}
}
private void DgvMain_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
ShowTests();
}
}
private void Button2_Click(object sender, EventArgs e)
{
TxtSearch.Text = "";
mainBindingSource.DataSource = db1.Mains.Include("TestResults").ToList();
ShowTests();
}
}
}