PropertyNameは、コントロールに関連する計算のソースまたはターゲット(またはその両方)として使用するプロパティの名前を取得または設定します。PropertyNameが設定されていない場合、またはPropertyNameが無効な場合、そのコントロールは計算に使用できず、参照エラーが生成されます。
CalcManagerが計算のソース値としてコントロールのプロパティを使用するためには、そのプロパティがBindableプロパティと同じ条件を満たしている必要があります。つまり、コントロールがプロパティを公的に公開していて、PropertyChangedイベントも公開されている必要があります。たとえば、 Textプロパティを使用する場合は、コントロールに TextChangedイベントが存在する必要があります。PropertyChangedイベントが存在しない場合、計算は適切に実行されません。この条件が適用されるのはソースプロパティのみです。数式の計算値を格納するターゲットとして使用するだけであれば、コントロールにPropertyChangedイベントは必要ありません。
Imports Infragistics.CalcEngine Imports Infragistics.Win.UltraWinCalcManager Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Suspend calculation while we are adding new items into the calc network Me.UltraCalcManager1.SuspendCalc() Dim calcSettings As CalcSettings 'Set CalcSettings properties on TextBox1 calcSettings = Me.UltraCalcManager1.GetCalcSettings(Me.textBox1) calcSettings.PropertyName = "Text" calcSettings.Alias = "Height" calcSettings.ErrorValue = 1 'Set CalcSettings properties on TextBox2 calcSettings = Me.UltraCalcManager1.GetCalcSettings(Me.textBox2) calcSettings.PropertyName = "Text" calcSettings.Alias = "Width" calcSettings.ErrorValue = 1 'Create a NamedReference to calulate the area. Dim namedReference As NamedReference namedReference = Me.UltraCalcManager1.NamedReferences.Add("Area", "[//Height] * [//Width]") namedReference.ErrorValue = "Error" 'Everything is added, so resume Me.UltraCalcManager1.ResumeCalc() End Sub Private Sub UltraCalcManager1_CalculationsCompleted(ByVal sender As Object, ByVal e As System.EventArgs) Handles UltraCalcManager1.CalculationsCompleted If (Me.UltraCalcManager1.NamedReferences.Exists("Area")) Then Me.textBox3.Text = Me.UltraCalcManager1.NamedReferences("Area").FormulaResult.Value.ToString() End If End Sub
using Infragistics.CalcEngine; using Infragistics.Win.UltraWinCalcManager; private void Form1_Load(object sender, System.EventArgs e) { //Suspend calculation while we are adding new items into the calc network this.ultraCalcManager1.SuspendCalc(); CalcSettings calcSettings = null; //Set CalcSettings properties on TextBox1 calcSettings = this.ultraCalcManager1.GetCalcSettings(this.textBox1); calcSettings.PropertyName = "Text"; calcSettings.Alias = "Height"; calcSettings.ErrorValue = 1; //Set CalcSettings properties on TextBox2 calcSettings = this.ultraCalcManager1.GetCalcSettings(this.textBox2); calcSettings.PropertyName = "Text"; calcSettings.Alias = "Width"; calcSettings.ErrorValue = 1; //Create a NamedReference to calulate the area. NamedReference namedReference = null; namedReference = this.ultraCalcManager1.NamedReferences.Add("Area", "[//Height] * [//Width]"); namedReference.ErrorValue = "Error"; //Everything is added, so resume this.ultraCalcManager1.ResumeCalc(); } private void ultraCalcManager1_CalculationsCompleted(object sender, System.EventArgs e) { if ( this.ultraCalcManager1.NamedReferences.Exists("Area") ) { this.textBox3.Text = this.ultraCalcManager1.NamedReferences["Area"].FormulaResult.Value.ToString(); } }