3
私はWPFとMVVMパターンで作業していますが、DataContext(viewmodel)のプロパティに応じて1つまたは複数のボタンを表示する必要があるボタンからなる単純なビューがあります。 データ・トリガとデータ・テンプレートを使ってこの作業を試みましたが、何らかの理由でバインディングが評価されていない(または何か間違っています) DataContext設定に基づくWPFボタンの内容
<Button x:Class="EpicNavalBattle.View.PositionView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<Button.Resources>
<DataTemplate x:Key="Hidden">
<Label Content="Hidden"></Label>
</DataTemplate>
<DataTemplate x:Key="Shown">
<Label Content="{Binding Path=Content.ContentName}" />
</DataTemplate>
</Button.Resources>
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding Revealed}" Value="False">
<Setter Property="ContentTemplate" Value="{DynamicResource Hidden}"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Revealed}" Value="True">
<Setter Property="ContentTemplate" Value="{DynamicResource Shown}"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
ただ混乱を避けるために:コンテンツがbasiclyモデルクラスのViewModelに(継承のDataContext)、およびContentName、Modelクラスのプロパティのプロパティです。 これを証明するために、私はデータ用にContent = "Binding ...."を変更したので、実際には指定されたラベルが付いたボタンを表示しているため、データ型全体が評価されています。 今のところ、テキストが表示されていないボタン(最小サイズ、最小サイズ) 何か助けていただければ幸いです(この問題を解決する方法だけでなく、私がここで間違っていることも)。ありがとう!
問題を解決しませんでした。また、あなたは答えを投稿するために基づいていることを言っていない:) –
あなたのコードをテストし、私の答えを更新! – Arcturus
大丈夫です!それは私が話していたものです:)。私は最初のアプローチを使用します。なぜなら、それは2番目のものに絡み合っているからではなく、今はそれを機能させようとしていたからです。実際にボタンの中にいくつかのものを作り出す必要があります。 。しかし、詳しい答えと、なぜこれがうまくいかなかったのかについての主な説明はありがたいです。 –