[ad_1]
おはようございますコードでボタンのコンテキストを変更しようとしているので、デフォルトではボタンにテキストがありません
ボタンのコンテキストを設定しようとすると、これは私がこれまでに持っているものです
私が試したこと:
xaml
XML
<Button x:Name="vsbutton" Content="{Binding Elfenlied, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}" Foreground="BlueViolet" Margin="4" Height="20" Command="{Binding vstest}">
インストール VM
C#
public string Elfenlied { get { return _elfenlied; } set { _elfenlied = value; OnPropertyChanged(nameof(Elfenlied)); } }
C#
public InstallVM() { try { Elfenlied = WeakReferenceMessenger .Default .Send<VSInstalledMessage>(); } catch(Exception ex) { } }
私はtry catchを入れました
インストールに入る前にメニューのダウンロードビューが選択されていない場合、nullを返すことがあるため、修正に取り組んでいます
しかし、それが変更されてデバッグし、elfenlied の値が vs already installed の場合
これはボタンのテキストには反映されず、まだ空白として表示されます
価値のある
コードビハインド
UI
うい
どんな助けでも大歓迎です
解決策 1
あなたのコードにはいくつかの問題があります:
1. ViewModel を View にバインドする DataContext をどこに設定したかわかりません。
2. ボタンに 2 つのエラーがあります。 変化:
XML
<Button x:Name="vsbutton" Content="{Binding Elfenlied, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}" Foreground="BlueViolet" Margin="4" Height="20" Command="{Binding vstest}">
に:
XML
<Button x:Name="vsbutton" Content="{Binding Elfenlied}" Foreground="BlueViolet" Margin="4" Height="20" Command="{Binding VsTestCommand}">
どこ:
を。 Elfenlied
ViewModel のパブリック プロパティです。これを行ったようです。
b. VsTestCommand
を持っています ICommand
ボタン クリック イベントを処理するために ViewModel に実装されます。
最後に、あなたがこれで何をしているのかわかりません…
C#
public InstallVM() { try { Elfenlied = WeakReferenceMessenger .Default .Send<VSInstalledMessage>(); } catch(Exception ex) { } }
クラスの作成時に、アプリの別の部分にメッセージを送信しようとしていますか?
[ad_2]
コメント