我正在使用C++ .net。我有一個自定義控件,顯示一個數據庫的內容與之間的綁定源。我使用標籤在控制的文本屬性數據集中的數據通過一個BindingSource的用下面的代碼綁定:數據綁定日期時間到標籤 - >文本將值轉換爲本地時間
mycontrol->Controls[i]->DataBindings->Add((gcnew System::Windows::Forms::Binding(L"Text",
this->bindingSourceRelRev_Data, mycolumn,true, System::Windows::Forms::DataSourceUpdateMode::OnValidation,
nullptr, L"t")));
請注意,該代碼是一個循環上的所有控件迭代的摘錄,因此控件[i](將作爲標籤控件)和變量mycolumn(將成爲要綁定到的數據集的列)。除了不想要的行爲,我還沒有找到改變的方式,它工作得很好。 軟件運行在世界的不同地區,但記錄必須在當地時間。數據庫將本地時間中的時間存儲爲日期時間值,但dataBinding將其解釋爲UTC,並顯示標籤中的時間並應用時區差異。例如,如果數據是2012年6月24日16:40,它將在4小時不同時區顯示2012年6月24日22:40。 我需要它只顯示存儲的值,而不進行更改。
我可以想到不同的方式去周圍,但非優雅: - 捕獲標籤的文本更新事件,並取消更改... - 將日期存儲爲DB中的字符串... -fill手動標籤... -...
如果我不綁定格式化,它不會改變的價值,但後來我的標籤上有原始日期時間字符串...
請,我在綁定中丟失的任何魔法,以便它不會假定它必須更改時區?
非常感謝您提前! Adan