私はShowUIを使用してPowerShell GUIを調べています。これは裏のWPFをベースにしており、データバインディングを動作させようとしています。理想的には、自分のデータとテキストボックスのハッシュテーブルをプロパティにバインドして、テキストボックスに入力するとハッシュテーブルが更新され、ハッシュテーブルが更新されてテキストボックスが更新されるようにしたいと思います。またはそれに近似した何か。PowerShellとShowUIの基本的なデータバインディングの例 - 全く機能しません
ipmo showui
StackPanel {
label -name "a" -Content { binding -ElementBinding b -path Text }
Textbox -name "b"
} -Show
をし、私が取得することは現れてUIですが、タイピングは何も変わりません:
私はWPFのデータバインディングの周りに私の方法を知らない、私はこのようなものをしようとしています。私はかなり多くの試行錯誤のバリエーションを試しました - Textbox -Text { binding... }
の代わりにTextBoxのバインディングを設定するか、ElementBindingの代わりにbinding -Source a
のような構文を使用して両方のバインディングを設定し、binding -Source $a
を-DataContextsテキストボックスまたは親スタックパネル上で、コマンドのさまざまな場所でデフォルト値を使用したり使用したりせずに試してください。私は、ハッシュテーブルを更新し、ハッシュテーブルをバインドしようとするイベントハンドラ、またはPSCustomObjectでbutton
を使用しようとしました。テキストボックスをスライダ値にバインドする - 多くの試行錯誤がありますが、結果はありません。
ShowUI hereにデータバインディングの例があります。これは、コマンドのヘルプをリストに入れて、それを実行します。これは正常に動作します。 first example hereは、フォルダ内に写真がある限り、正常に動作します。これらは、ShowUIがデータバインディングを扱うことができると思っています。そして、足場や初期化コードはありません。
this C# tutorialに従い、SHOWUIにほとんど文字通りポートにそれをしようと、私はこれを取得:
ipmo showui
$s = [pscustomobject]@{fname="Mahak"; lname="Garg";}
Grid -Name "StuInfo" -rows 3 {
TextBox -Text { Binding fname } -row 0
Textbox -Text { Binding lname } -row 1
Button -name "button1" -Content "Next" -row 2 -On_Click {
$s2 = [pscustomobject]@{fname="Jupi"; lname="Gupta";}
$stuinfo.DataContext = $s2
Write-Host "."
}
} -On_Loaded {
$stuinfo.DataContext = $s
} -show
そしてUIが表示され、データはありません。ボタンをクリックすると.
がコンソールに書き込まれますが、テキストボックスは更新されません。
私はPowerShell 4を使用していますので、Githubの最新のShowUI 1.5(私は思っています)のdevブランチを直接使用することはできません。 [編集:これは少なくとも私の問題の一部であり、実際にあるコンピュータで古いバージョンと別のバージョンで新しいバージョンを使用していた]
私は何が間違っていると思いますか?
'$ stuinfo'を' $ This'で置き換えようとしましたか? Ex。 '$ This.DataContext = $ s' – boeprox
@boeproxx私はそれを試していなかったが、私は今ある - と違いを見ることができません。 – TessellatingHeckler