我正在尝试绑定来自多个数据网格的数据,我不希望每次启动应用程序时都能查看所有这些数据。 是否有可能在设置中设置它?或者自动将所有数据网格设置为已查看?
由于
答案 0 :(得分:0)
也许你的想法是错误的?如果您希望在表格显示之前显示您需要做的是将数据存储在DataTable
中,然后使用该数据进行播放。然后,当显示您的DataGridView
时,只需将DataTable
绑定到它并显示它即可。我在下面提供了一个示例。但是,如果只是显示表格的情况,那么tablename.visable = false
应该可以做到这一点,或者如果您有其他元素(例如面板),则可以使用panelname.BringToFront
或tablename.SendToBack
。
让我们开始OOP示例..
您可以在另一个要操作数据的接口类中使用它。在此示例中,此类将为IOptions
,此处您可以拥有Options所需的所有数据表。您可以使用不同的接口类来表示程序的某些部分,但我们现在将坚持使用选项..
public DataTable mProgramOptionsList;
然后当程序启动时(您的主页/ main.cs),您将IOptions附加到此DataTable
所需的任何类。
mIOptions = new IOptions();
mPresenterOptions = new PresenterOptions();
mPresenterOptions.AttachInterface(mIOptions);
mModelOptions = new ModelOptions();
mModelOptions.AttachInterface(mIOptions);
PresenterOptions()
IOptions mIOptions;
public void AttachInterface(IOptions pOptions)
{
mIOptions = pOptions;
}
现在,在Presenter选项中,您可以根据需要修改表格,并填写它们。
mIOptions.mProgramOptionsList = mModelOptions.GetProgOptionsFromDB();
这是您希望控制表的类。这可以是具有自己的布局和结构的单独GUI / View类。只要您将界面(IOptions
)附加到您用来保存所有表格的类上。
private IOptions mIOptions;
private BindingSource mbsProgramOptions;
public int mOptionsID { get; set; }
void AttachOptionsInterface(IOptions pOptions)
{
mIOptions = pOptions;
CreateDataBindings();
}
private void CreateDataBindings()
{
mbsProgramOptions= new BindingSource();
mbsProgramOptions.DataSource = mIOptions.mProgramOptionsList; // Or what ever datatable you have made
dgvProgramOptions.AutoGenerateColumns = false;
dgvProgramOptions.DataSource = mbsProgramOptions; // this binds your DataGridView to the DataSource
}
完成此操作后,您不仅可以将数据添加或更改为已附加IOptions的任何类,还可以通过执行类似操作(假设您调用上面的表控制类{{1 }}):
在PresenterOptions或任何类中:
TableHelper