我有一个显示2个集合的屏幕。 在左侧显示部分列表。默认情况下,第一部分被选中。如果你点击另一个部分,那么就会选择它。 在右侧,我在一对多关系中列出了该部分的相关问题。赢得文本框Rt更改事件
因此,每个问题属于一个部分,一个部分可以有1到很多问题。
有些问题需要有答案,有些可以选择回答。 为了方便用户查找所需的问题,答案文本框旁会显示一个红色星号。当这个问题得到回答时,它就消失了。
此外,我需要显示每个部分有未解答的问题的星号。一旦他们全部回答,该部分的星号也会消失。
可视化树是这种格式; SurveyPageViewModel - SurveyViewModel - SectionViewModel - QuestionViewModel
下面的代码显示(其中包含了答案属性)的QuestionViewModel和XAML代码是在一个DataTemplate,所以我不认为有一种方式了可视化树更新部分。
所以我的(简化的)我的答案属性的处理程序代码看起来像这样;
private string _answer;
public string Answer
{
get
{
return _answer;
}
set
{
if (SetProperty(ref _answer, value))
{
this.IfQuestionSetCheckIfAnswered(this.IsRequiredOnScreenAnswer);
}
}
}
private void IfQuestionSetCheckIfAnswered(bool value)
{
if (this.IsRequired && string.IsNullOrWhiteSpace(this.Text) == false)
{
this.EventAgg.GetEvent<RequiredAnswerUpdatedEvent>().Publish(value);
}
}
和我的XAML的问题/答案;
<StackPanel Orientation="Horizontal" Grid.Row="1" Grid.ColumnSpan="2" Grid.Column="0" Margin="0, 0, 0, 5">
<TextBox Grid.Row="1"
Text="{Binding Path=Answer, Mode=TwoWay}"
MinWidth="300"
IsReadOnly="{Binding Path=IsReadOnly}" />
<TextBlock Text="*" FontSize="40" FontWeight="Bold"
Style="{StaticResource ResourceKey=RequiredSignal}" Margin="5, 0, 0, 0"
Visibility="{Binding Path=IsRequiredOnScreenAnswer, Converter={StaticResource ResourceKey=BooleanToVisibilityConverter}}" />
</StackPanel>
我正在使用Prism和EventAggregator模式来更新在不同的ViewModel中选定的部分。 现在这个工程除了一个重要的问题。我只想在页面加载后更新该部分。目前,这个事件在页面加载时和答案改变时都被触发。 我如何得到这个工作,所以负载被忽略?
交互性:Interaction.Behaviors在WinRT中不受支持 – arame3333
也许需要sdk,看看这个例子[answer](https://social.msdn.microsoft.com/Forums/windowsserver/en-US/29c709d8-6ddb -4e19-b8c2-6a035b1bcb41/uwpwill-there-be-a-behavior-sdk-to-support-eventtriggerbehavior-invokecommandaction?forum = wpdevelop)... –
或者只是在后面的代码中处理'Loaded'事件并转发事件到视图模型? –