Aracılığıyla paylaş


Nasıl yapılır: Windows Forms ile DDX/DDV Veri Bağlaması Yapma

DDX_ManagedControl, kaynak denetimi kimliğiyle eşleşen bir denetim oluşturmak için CWinFormsControl::CreateManagedControl öğesini çağırır. Bir CWinFormsControl denetim için kullanıyorsanız DDX_ManagedControl (sihirbaz tarafından oluşturulan kodda), aynı denetim için açıkça çağırmamalısınızCreateManagedControl.

Kaynak kimliklerinden denetimler oluşturmak için CWnd::D oDataExchange'i arayınDDX_ManagedControl. Veri alışverişi için Windows Forms denetimleriyle DDX/DDV işlevlerini kullanmanız gerekmez. Bunun yerine, aşağıdaki örnekte olduğu gibi, yönetilen denetimin DoDataExchange özelliklerine erişmek için kodu iletişim kutusu (veya görünüm) sınıfınızın yöntemine yerleştirebilirsiniz.

Aşağıdaki örnekte yerel bir C++ dizesinin .NET kullanıcı denetimine nasıl bağlanacağınız gösterilmektedir.

Örnek: DDX/DDV veri bağlama

Aşağıda, .NET kullanıcı denetiminin kullanıcı tanımlı NameText özelliğine sahip bir MFC dizesinin m_str DDX/DDV veri bağlama örneği verilmiştir.

Denetim, CDialog::OnInitDialog ilk kez çağırdığında CMyDlg::DoDataExchange oluşturulur, bu nedenle başvuruda m_UserControl bulunan tüm kodların çağrıdan DDX_ManagedControl sonra gelmesi gerekir.

Bu kodu, Nasıl yapılır: İletişim Kutusunda Kullanıcı Denetimi ve Ana Bilgisayar Oluşturma bölümünde oluşturduğunuz MFC01 uygulamasında uygulayabilirsiniz.

AŞAĞıDAKI kodu CMFC01Dlg bildirimine yerleştirin:

class CMFC01Dlg : public CDialog
{
   CWinFormsControl<WindowsFormsControlLibrary1::UserControl1> m_MyControl;
   CString m_str;
};

Örnek: DoDataExchange() Uygulama

AŞAĞıDAKI kodu CMFC01Dlg uygulamasına yerleştirin:

void CMFC01Dlg::DoDataExchange(CDataExchange* pDX)
{
   CDialog::DoDataExchange(pDX);
   DDX_ManagedControl(pDX, IDC_CTRL1, m_MyControl);

   if (pDX->m_bSaveAndValidate) {
      m_str = m_MyControl->textBox1->Text;
   } else
   {
      m_MyControl->textBox1->Text = gcnew System::String(m_str);
   }
}

Örnek: İşleyici yöntemi ekleme

Şimdi Tamam düğmesine tıklamak için işleyici yöntemini ekleyeceğiz. Kaynak Görünümü sekmesine tıklayın. Kaynak Görünümü'nde öğesine çift tıklayınIDD_MFC01_DIALOG. İletişim kutusu kaynağı Kaynak Düzenleyicisi'nde görünür. Ardından Tamam düğmesine çift tıklayın..

İşleyiciyi aşağıdaki gibi tanımlayın.

void CMFC01Dlg::OnBnClickedOk()
{
   AfxMessageBox(CString(m_MyControl.GetControl()->textBox1->Text));
   OnOK();
}

Örnek: textBox metnini ayarlama

Aşağıdaki satırı BOOL CMFC01Dlg::OnInitDialog() uygulamasına ekleyin.

m_MyControl.GetControl()->textBox1->Text = "hello";

Artık uygulamayı derleyebilir ve çalıştırabilirsiniz. Uygulama kapatıldığında metin kutusundaki tüm metinlerin bir açılır ileti kutusunda görüntüleneceğine dikkat edin.

Ayrıca bkz.

CWinFormsControl Sınıfı
DDX_ManagedControl
CWnd::D oDataExchange