ラベルとテキストフィールドがあり、2 つの異なる値が表示されます。
if(a != null && b == null) {
return "a";
}
else if(a == null && b != null) {
return "b";
}
ロジックは非常に単純ですが、これを xaml と mvvm-pattern にどのように適合させるのでしょうか? ビューモデルとビュー (xaml-ui) があります。コードはおそらくビューモデルに配置する必要があります。
つまり、最初の条件に a を表示し、2 番目の条件にbを表示したいということですか??
それが本当なら...
それから ..
ViewModel でプロパティ変更通知を使用してプロパティを作成する
public void ValidationFunction
{
if(a != null && b == null)
{
TextToDisplay ="a";
}
else if(a == null && b != null)
{
TextToDisplay ="b";
}
else
{
TextToDisplay= string.Empty;
}
}
<TextBlock Text={Binding Path=TextToDisplay}/>
プロパティの Setter に INotifyPropertyChanged を実装することを忘れないでください。
必要に応じて検証関数を呼び出します。
A と B でMultiBindingを使用し、ロジックをIMultiValueConverterに実装できます。
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource YourConverter}">
<Binding Path="A"/>
<Binding Path="B"/>
</MultiBinding/>
</TextBlock.Text>
</TextBlock>
コード:
class MyViewModel {
string ResultStr {
get {
if (a != null && b == null)
return "a";
else if (a == null && b != null)
return "b";
}
}
}
XAML:
<TextBlock Text={Binding Path=ResultStr Mode=OneWay}/>