チェンジセット 1621 (default)
- 日時:
- 2023/09/22 0:32:49 (13ヵ月前)
- ファイル:
-
- 1個の更新
凡例:
- 未変更
- 追加
- 削除
-
framework/trunk/WebLibrary/Sources/UI/WebControls/ControlPropertyLinkageConnector.cs
r1616 r1621 80 80 private const string LinkedPropertyNegativeValueKey = "LinkedPropertyNegativeValue"; 81 81 82 /// <summary> 83 /// <see cref="ValueIsPositive"/> プロパティ用のキー。 84 /// </summary> 85 private const string ValueIsPositiveKey = "ValueIsPositive"; 86 82 87 83 88 /// <summary> … … 302 307 303 308 /// <summary> 309 /// 評価結果を取得または設定します。 310 /// </summary> 311 /// <value> 312 /// 評価結果。 313 /// </value> 314 private bool? ValueIsPositive 315 { 316 get 317 { 318 return (bool?)ViewState[ValueIsPositiveKey]; 319 } 320 321 set 322 { 323 ViewState[ValueIsPositiveKey] = value; 324 } 325 } 326 327 /// <summary> 304 328 /// <see cref="E:System.Web.UI.Control.Init" /> イベントを発生させます。</summary> 305 329 /// <param name="e">イベント データを格納している <see cref="T:System.EventArgs" /> オブジェクト。</param> … … 309 333 base.OnInit(e); 310 334 311 UpdateLinkedControl(true); 335 // 必ず更新 336 UpdateLinkedControl(true, false); 312 337 } 313 338 … … 320 345 base.OnPreRender(e); 321 346 322 if (changed) 323 { 324 UpdateLinkedControl(false); 325 } 347 // 変更があった場合のみ連携対象のコントロールを更新 348 UpdateLinkedControl(false, true); 326 349 } 327 350 … … 370 393 /// それ以外の場合は <see langword="false"/>。 371 394 /// </param> 372 private void UpdateLinkedControl(bool isRequiredAttachEventHandler) 395 /// <param name="updateOnlyIfChanged"> 396 /// 値に変更があった場合のみ更新する場合は <see langword="true"/>。 397 /// それ以外の場合は <see langword="false"/>。 398 /// </param> 399 private void UpdateLinkedControl(bool isRequiredAttachEventHandler, bool updateOnlyIfChanged) 373 400 { 374 401 object value = GetSourcePropertyValue(ref isRequiredAttachEventHandler); … … 376 403 bool valueIsPositive = EvaluateSourceValue(value); 377 404 405 // 変更された場合のみ更新する場合、プロパティに変更が無く、値も変わっていなければ何もしない 406 if (updateOnlyIfChanged && !changed && valueIsPositive == ValueIsPositive) 407 { 408 return; 409 } 410 378 411 SetLinkedPropertyValue(valueIsPositive, isRequiredAttachEventHandler); 379 412 413 ValueIsPositive = valueIsPositive; 380 414 changed = false; 381 415 } … … 607 641 private void ControlOnDefaultEventHandler(object sender, EventArgs e) 608 642 { 609 UpdateLinkedControl(false); 643 // 変更があった場合のみ連携対象のコントロールを更新 644 UpdateLinkedControl(false, true); 610 645 } 611 646 }
※ 詳しい使い方は
TracChangeset を参照してください。