私はDataTemplateSelectorとのContentPresenterいる:CurrentStatusが変更された場合、OnPropertyChangedををプロパティが変更されたときにDataTemplateSelectorをトリガする方法
...
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
var model = item as ItemControlViewModel;
if (model.CurrentStatus == PrerequisitesStatus.Required)
{
return RequiredTemplate;
}
if (model.CurrentStatus == PrerequisitesStatus.Completed)
{
return FinishedTemplate;
}
...
return InProgressTemplate;
}
と呼ばれています。
プロパティが変更されたときにこのDataTemplateSelectorをトリガーしてContentPresenter DataTemplateを変更する必要があります。助言がありますか?
Threreも同様の質問です: 1 2、私はので、あまり状態で、任意のDataTriggersを使用する必要はありません。
がDataTriggers
<ContentPresenter
Grid.Column="1"
Height="16"
Width="16"
Margin="3">
<ContentPresenter.Triggers>
<DataTrigger Binding="{Binding Path=CurrentStatus}" Value="0">
<Setter Property="ContentPresenter.ContentTemplate" Value="{StaticResource ResourceKey=_requiredStatusTemplate}" />
</DataTrigger>
</ContentPresenter.Triggers>
</ContentPresenter>
でプレイしようとしましたが、エラーが発生しました: は、コレクションのメンバーは、私が間違っている可能性タイプのEventTrigger :(
あなたはVisualStateManagerを使用して考えがありますか? –
いいえ、私はそれがここには適していないと思います。私はテンプレートではなく、プロパティを変更する必要があります。 – rapt0r
過去に同じ問題が発生していて、DataTriggersに切り替えることで問題は解決しましたが、私はそこにもっと良い解決策があるとは思わないでしょう... – SvenG