方法: コードを使用して Silverlight の画面を変更する
Visual Studio LightSwitch は、デザイナーやツール ウィンドウを使用して画面関連の多くのタスクを実行することを可能にします。 ただし、コードを使用して実行すると効果のあるタスクもあります。 このトピックでは、画面のオブジェクト モデルを使用して、一連の画面関連の共通デザイン タスクを実行する方法を示します。 アプリケーションでコードを記述できる場所の詳細については、次のトピックを参照してください。
一般的なタスク
画面オブジェクト モデルを使用して実行できるいくつかの一般的なデータ関連タスクを次に示します。
- コントロールを非表示、読み取り専用、または無効にする
コントロールを非表示、読み取り専用、または無効にする
コードを使用して、画面上のコントロールを表示または非表示にすることができます。 コントロールを読み取り専用または無効のどちらにするかを指定することもできます。
次の例では、会社名が Great Lakes Food Market の場合、データ グリッド内に会社名が表示されません。 この例では、コントロールを読み取り専用にするため、視聴者はコントロールにテキストを入力して会社名を変更できないようになります。
Private Sub FindControlInList()
Dim index As Integer = 0
For Each cust As Customer In Customers
If cust.CompanyName = "Great Lakes Food Market" Then
With FindControlInCollection("CompanyName", Customers(index))
.IsVisible = False
.IsReadOnly = True
End With
End If
index = index + 1
Next
End Sub
private void FindControlInList()
{
int index = 0;
foreach (Customer cust in this.Customers)
{
if (cust.CompanyName == "Great Lakes Food Market")
{
this.FindControlInCollection("CompanyName",
this.Customers.ElementAt(index)).IsVisible = false;
this.FindControlInCollection("CompanyName",
this.Customers.ElementAt(index)).IsReadOnly = true;
}
index++;
}
}
次の例では、選択したアイテムの会社名が Great Lakes Food Market の場合、画面上の詳細表示で会社名は表示されません。 この例では、[削除] ボタンを無効にするため、ユーザーは Great Lakes Food Market で働く顧客を削除できません。
Private Sub Customers_SelectionChanged()
FindControl("Customers_DeleteSelected").IsEnabled = True
If Me.Customers.SelectedItem.CompanyName = "Great Lakes Food Market" Then
FindControl("CompanyName1").IsVisible = False
FindControl("Customers_DeleteSelected").IsEnabled = False
End If
End Sub
partial void Customers_SelectionChanged()
{
this.FindControl("Customers_DeleteSelected").IsEnabled = true;
if (this.Customers.SelectedItem.CompanyName == "Great Lakes Food Market")
{
this.FindControl("CompanyName1").IsVisible = false;
this.FindControl("Customers_DeleteSelected").IsEnabled = false;
}
}