ラベルに表示する文字列に5つのテキストボックスの値をマージしようとしています。しかし、私はこのエラーメッセージが表示されていますこの式は文字列型を持つと予想されました
This expression was expected to have type string but here has type string -> string -> string -> string -> string
誰もがテキストボックスの値をラベルに表示できます。
let temp = self.Factory.Backing(<@ self.Temp @>, "")
let ph = self.Factory.Backing(<@ self.PH @>, "")
let soil = self.Factory.Backing(<@ self.SOIL @>, "")
let slope = self.Factory.Backing(<@ self.SLOPE @>, "")
let aspect = self.Factory.Backing(<@ self.ASPECT @>, "")
let display = self.Factory.Backing(<@ self.Display @>, "")
let goCommand = self.Factory.CommandSyncParam(fun param -> self.Display <- sprintf "The data that has been enter is:\n%s,\n %s,\n %s,\n %s,\n %s" param)
member x.TEMP with get() = temp.Value and set value = temp.Value <- value
member x.PH with get() = ph.Value and set value = ph.Value <- value
member x.SOIL with get() = soil.Value and set value = soil.Value <- value
member x.SLOPE with get() = slope.Value and set value = slope.Value <- value
member x.ASPECT with get() = aspect.Value and set value = aspect.Value <-value
member x.Display with get() = display.Value and set value = display.Value <- value
member x.GoCommand = goCommand
を、私はこのコードHow do I concatenate a list of strings in F#?を発見し、これは私が何をしたい出力されます。ここに は、私が使用してコードです。だから私はこのコードを自分の値で試してみました。
let strings =["temp.Value"; "ph.Value"; "soil.Value"]
let r = strings |> List.fold (fun r s -> r + s + "\n") ""
printfn "%s"
私は出力としてこれを得た:
temp.Value
ph.Value
soil.Value
はどのようにして、各カテゴリの値が表示されるまでとし、それをマージする方法を得るのですか「聞かせgoCommand?」要求ごとに編集
は、XAMLコード
<TextBox Grid.Row="3" Grid.Column="1" FontSize="14" Text="{Binding TEMP}"/>
<TextBox Grid.Row="4" Grid.Column="1" FontSize="14" Text="{Binding PH}"/>
<TextBox Grid.Row="5" Grid.Column="1" FontSize="14" Text="{Binding SOIL}"/>
<TextBox Grid.Row="6" Grid.Column="1" FontSize="14" Text="{Binding SLOPE}"/>
<TextBox Grid.Row="7" Grid.Column="1" FontSize="14" Text="{Binding ASPECT}" Grid.ColumnSpan="3" Margin="0,0,16,0" />
<Button Margin="0,31,0,652" Grid.Row="8" FontSize="16" Content="Submit" Foreground="DarkBlue" FontWeight="Heavy" Background="LightBlue"
Command="{Binding GoCommand}" CommandParameter="{Binding TEMP, PH, SOIL,SLOPE, ASPECT}"/>
コード(Temp、PH、SOIL、...)から表示する変数を変更する必要がない場合は、それらを1つのレコードに結合する方が簡単です。 –
@FoggyFinderがxamlコードを追加しました。 –
将来:xamlはF#ではありません - バインディングで '、'を使うと、これらの要素のタプルは作成されません。 –