我有一个标签和一个文本字段,它会显示两个不同的值。
if(a != null && b == null) {
return "a";
}
else if(a == null && b != null) {
return "b";
}
逻辑非常简单,但如何在xaml和mvvm-pattern中使用它?我有一个viewmodel和一个视图(xaml-ui)。代码应该放在viewmodel中。
答案 0 :(得分:2)
你的意思是说....你想为第一个条件显示 a 而第二个条件是 b ?
如果这是真的......
然后..
在ViewModel
中创建一个包含Property chnaged notification的属性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 of property中实现INotifyPropertyChanged。
在需要时调用验证功能。
答案 1 :(得分:1)
您可以在A和B上使用MultiBinding,并在IMultiValueConverter
中实施您的逻辑<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource YourConverter}">
<Binding Path="A"/>
<Binding Path="B"/>
</MultiBinding/>
</TextBlock.Text>
</TextBlock>
答案 2 :(得分:0)
代码:
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}/>