C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: プロパティの連動


(過去ログ 119 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■69886 / inTopicNo.1)  プロパティの連動
  
□投稿者/ C#研究者 (19回)-(2014/02/06(Thu) 19:01:14)

分類:[C#] 

Windows7 32bit VSC#2010

intとenumのプロパティとintの内部データをもったユーザーコントロールを作っています。
※質問と関係のないプロパティは略しております。

以下のように作ったのですが、
スイッチIDを変えたときにinfo(Enum型)のプロパティも変わっているのですが、
デザイナでint側を変更したときにSWITCH_ID_INFOの値が変わらず、
SWITCH_ID_INFOのプロパティをクリックしたときに値が変更します。

int側を変更した際に、INFOプロパティを変化させるにはどうすればよいのでしょうか。
また、このような内部で連動したプロパティを作ることがあまりないので、
ここがまずいとか、ここはこうしたほうがいいという考えをお持ちの方は
是非教えてくだされば幸いです。

public partial class UserControl1 : UserControl
{
/// <summary>
/// スイッチID
/// </summary>
private int _SwitchID;

/// <summary>
/// スイッチ構造体
/// </summary>
public SWITCH_ID_INFO info
{
set
{
_SwitchID = (int)value;
}
get
{
return (SWITCH_ID_INFO)_SwitchID;
}
}

/// <summary>
/// スイッチID
/// </summary>
public int SwtichID
{
set
{
_SwitchID = value ;
info = (SWITCH_ID_INFO)SwtichID ;
}

get
{
return _SwitchID;
}
}

public UserControl1()
{
InitializeComponent();
}
}
引用返信 編集キー/
■69896 / inTopicNo.2)  Re[1]: プロパティの連動
□投稿者/ 魔界の仮面弁士 (524回)-(2014/02/07(Fri) 09:32:55)
2014/02/07(Fri) 09:38:18 編集(投稿者)

No69886 (C#研究者 さん) に返信
> Windows7 32bit VSC#2010
VSC#…?


> 以下のように作ったのですが、
public int SwtichID プロパティを
private int _SwitchID フィールドで管理するのは分かりますが、
public SWITCH_ID_INFO info プロパティまでも
private int _SwitchID フィールドで管理しているようですね。


> _SwitchID = (int)value;
このキャストが良くわかりませんでした。
コメントで「/// スイッチ構造体」と書かれているということは、
SWITCH_ID_INFO は enum(列挙型)ではなく、struct(構造体)なのですよね。
SWITCH_ID_INFO 構造体に、Int32 構造体への型変換演算子を実装してあるのですか?


> スイッチIDを変えたときにinfo(Enum型)のプロパティも変わっているのですが、
> デザイナでint側を変更したときにSWITCH_ID_INFOの値が変わらず、
> SWITCH_ID_INFOのプロパティをクリックしたときに値が変更します。
とりあえず RefreshPropertiesAttribute とか。
引用返信 編集キー/
■69900 / inTopicNo.3)  Re[2]: プロパティの連動
□投稿者/ C#研究者 (20回)-(2014/02/07(Fri) 17:37:59)
2014/02/07(Fri) 17:39:41 編集(投稿者)

教えてくださりありがとうございます。
また後日確認します。

VS

→VisualBasicの略です。

構造体

→ではなくて、enum型です。古いコメントが残っておりました。
 申し訳ありません。

急用ができてしまったので、
また後日確認したいと思います。
引用返信 編集キー/
■69903 / inTopicNo.4)  Re[3]: プロパティの連動
□投稿者/ C#研究者 (21回)-(2014/02/07(Fri) 20:56:26)
時間ができたので確認しました。
RefreshPropertiesAttributeを追加してできました。

enum型にプロパティを切り替えようとしたら、すでにint型のプロパティにいろいろつないでいたので、
両方プロパティを残すようにしたいと考えております。
これでなんとかなりそうです。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -