ViewModelから計算されたデータでラベルを更新する必要があります。これは、textBoxからのデータを使用してラベルに表示する必要があるテキストを計算するので、textBoxが更新されたときにトリガーされなければなりません。C#WPFテキストボックスから計算されたデータを持つMVVM更新ラベル
私の.xamlファイルは次のとおりです。
...
<TextBox x:Name="tbSelectedValue"
PreviewTextInput="SelectedValue_PreviewTextInput"
KeyUp="SelectedValue_KeyUp"
Text="{Binding Path=SelectedValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<TextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding SelectFileCommand}" />
</TextBox.InputBindings>
</TextBox>
<Label x:Name="lbSelectedFileName"
Content="{Binding Path=SelectedName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
...
私のViewModelファイルは次のとおりです。
public string SelectedValue
{
get { return selectedValue; }
set { SetProperty(ref selectedValue, value); }
}
public string SelectedName
{
get { return selectedName; }
set { selectedName = value; }
}
internal string GetSelectName()
{
try
{
selectedValue = (selectedValue == "" ? "" : GetFileByNumber(Int32.Parse(selectedValue)).name);
return selectedValue;
}
catch (Exception e)
{
return "Nenhum arquivo encontrado";
}
}
SelectedValue
作品が、SelectedName
は動作しません。
textBoxの値が更新されたとき(selectedValue)、関数GetSelectName
を呼び出す必要があります。私の関数GetSelectName
は、selectedNameプロパティを更新し、ビューで更新する必要があります。しかし、それは動作していません。
私は何をすべきですか?
'Mode = TwoWay、UpdateSourceTrigger = PropertyChanged'です。なぜあなたはそのような旗を選んだのですか? 'SelectedName'のためにセッターを修正するのに特に効果があると思ったフラグについてはどうでしたか? –
申し訳ありませんが、あなたの解決策を理解していません –
問題でした。私は、 'Label.Content'上のバインディングに' Mode = TwoWay'を追加するというあなたの推論を求めていました。 –