asの妙用
2464 ワード
個人理解:asとis
isは判断の「===」が正しいかどうかに相当する.
asは一般に別のobjectを変換するために用いられる
に表示されます.
Asとisの出現は一般にルーティングイベントにおいて,この2つのキーワードによって動的に生成される異なるタイプまたは属性の異なるUIコントロールを互いに交差させる必要がある.
例えばforでボタンを生成する
ルーティングリスニング
イベント処理
比較的複雑な変換では、1階1階に入る必要があります.
isは判断の「===」が正しいかどうかに相当する.
if(e.OriginalSource is Button)
asは一般に別のobjectを変換するために用いられる
e.OriginalSource as Button
に表示されます.
e.OriginalSource as RadioButton).Name.ToUpper()
Asとisの出現は一般にルーティングイベントにおいて,この2つのキーワードによって動的に生成される異なるタイプまたは属性の異なるUIコントロールを互いに交差させる必要がある.
例えばforでボタンを生成する
for(int i = 0;i<10;i++)
{
Button btn = New Button();
btn.Name = i.ToString();
stackPanel1.Children.Add(btn);
}
for(int i = 0;i<10;i++)
{
RadioButton btn = New RadioButton();
btn.Name = i.ToString();
stackPanel1.Children.Add(btn);
}
ルーティングリスニング
this.stackPanel.AddHandler(Button.ClickEvent, new RoutedEventHandler(Btn_Click));
イベント処理
private void Btn_Click(object obj, RoutedEventArgs e)
{
object Obj = e.OriginalSource;
if(Obj is Button)
{
MessageBox.Show((Obj as Button).Name.ToString());
}
if(Obj is RadioButton)
{
MessageBox.Show((Obj as RadioButton).Name.ToString());
}
}
比較的複雑な変換では、1階1階に入る必要があります.
TabControl
((sender as TabControl).SelectedItem as TabItem).Header.ToString();
DataGrid
((sender as DataGrid).SelectedItem as DataRowView).Row["c_id"].ToString();