12 個のラベルで構成されるカスタム UserControl を作成しました。
ここで、プログラムが読み込まれると、内容が「デフォルト」のラベルを変更する必要があります。
// This is called in my main forms constructor, right before InitializeComponent()
public void ShowRigInfo()
{
// This is here because if I try to call PopluateLabels, I get an "Object not
// set to an instance of object" error
grdRigInfo = new RigInfoGrid();
var contractor = SplitString("contractor", _rigInfo);
var projectName = SplitString("projectname", _rigInfo);
var location = SplitString("location", _rigInfo);
var operatorName = SplitString("operator", _rigInfo);
var rigName = SplitString("rigsite_name", _rigInfo);
var rigManager = SplitString("rigmanager", _rigInfo);
grdRigInfo.PopulateLabels(contractor, projectName, location, operatorName,
rigName, rigManager);
}
// A public method of my custom UserControl to update label content
public void PopulateLabels(string contractor, string project, string location,
string operatorName, string rigName, string manager)
{
lblContractor.Content = contractor;
lblProjectName.Content = project;
lblLocation.Content = location;
lblOperator.Content = operatorName;
lblRigName.Content = rigName;
lblRigManager.Content = manager;
}
私の質問は、プログラムの起動時にラベルを更新するにはどうすればよいですか? 助けてくれてありがとう。
編集
メインフォームのShowRigInfo()
前後の両方を呼び出そうとしました。InitializeComponent()
どちらもラベルを変更しませんでした。
編集2
さて、実際に答えを見る前にこれを解決しました。私がしたことShowRigInfo()
は、メインフォームではなく、カスタム UserControl に移動したことです。最初からそうしなかった理由はわかりませんが、あります。回答の DataBinding 部分を調べます。君たちありがとう。