我有一個顯示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'事件並轉發事件到視圖模型? –