0

例えば:

MySlider.ValueChanged += new RoutedPropertyChangedEventHandler<double>(Slider_ValueChanged);

上記は、「Slider_ValueChanged」メソッドが存在しないとコンパイルされないことを除いて、うまくいっています。それ以上に、プログラムで複数のスライダーを作成したい場合は、それらに異なる名前の異なるハンドラーを付けたいと思うかもしれません。

理想的には、次のようなことをしたいと思います:

var x = some_handler;
MySlider.ValueChanged += new RoutedPropertyChangedEventHandler<double>(x);

基本的な考え方は、ユーザーが選択したオプションに応じて、プログラムで事前構成されたスライダーのパネルをオンデマンドで返すことです。プログラムで作成されたスライダーのイベント ハンドラーの実際の実装は、プロジェクトに既に存在します。

以下のMatthew Waltonの回答に従ってコードを修正しました。

4

1 に答える 1

0

コードが正しくないことを除いて、答えはすでにあなたの質問にあると思います。

var x = some_handler;
MySlider.ValueChanged += new RoutedPropertyChangedEventHandler<double>(x);

イベントに添えsome_handlerます。このことから、スライドのハンドラー関数とその他の情報をパラメーターとして受け取り、それを使用してイベント ハンドラーとその他の関連データを設定し、スライド オブジェクトを返すかコレクションに格納するメソッドを作成できることがわかります。またはあなたがする必要があることは何でも。

また、無名関数とラムダを調べることもできます。これは、ループ内で作成されたさまざまなオブジェクトに対して、類似しているが異なるイベント ハンドラーを構築する便利な方法です。

于 2012-08-03T09:20:23.060 に答える