私は、プロジェクト名と、そのプロジェクトの画像を表示するコメントを追加するような、別のアクションを実行する各プロジェクトのボタンを表示するリストビューを持っています。時にはこれらのボタンのいくつかを無効にする。一部のプロジェクトでは一部のボタンが表示されません。したがって、このコードでデータバインディングを使用して達成したい2つのことがあります。UWP app表示/非表示バインドを使用するボタン
ProjectModelのいくつかのブール変数に応じて、ボタンの表示を変更する必要があります。私はこれを試したBinding a Button's visibility to a bool value in ViewModelしかし、それはuwpで動作するようには思われません。
一部のプロジェクトでは、そのオプションが無効になっているときに別の色のイメージを表示する必要があります。ですから、ProjectModelのブール変数に応じてImageBrushのImageSourceを変更する必要があります。そのために私はこれを試しましたChange image using trigger WPF MVVMこれらのスタイルトリガーはuwpで動作していません。
私はUWPアプリでこれらを簡単に行う方法を教えてください。これは私の最初のUWPアプリであり、私はこれらの概念を初めて使っています。
<ListView x:Name="stepsListView" Margin="10,0,0,0" RequestedTheme="Dark" FontSize="24" Background="{StaticResource procedure_app_white}" Foreground="Black" BorderThickness="1.5" BorderBrush="Transparent" ItemsSource="{Binding projectList}" HorizontalAlignment="Left">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
<!-- Item -->
<ListView.ItemTemplate>
<DataTemplate>
<Border BorderThickness="0,0,0,1" BorderBrush="#c0c0c0">
<Grid Width="auto" HorizontalAlignment="Stretch" DataContextChanged="Grid_DataContextChanged" >
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<TextBlock VerticalAlignment="Center" FontSize="30" Grid.Row="0" Grid.ColumnSpan="7" Text="{Binding projectName}" Foreground="{StaticResource procedure_app_orange_text }" />
<Button x:Name="warningButton" Width="40" Height="40" Grid.Column="1" Grid.Row="1" Tag="{Binding projectId}" Click="warningButtonClick" Foreground="{StaticResource procedure_app_orange_text }">
<Button.Background>
<ImageBrush ImageSource="Asset/step_ncwr.png">
</ImageBrush>
</Button.Background>
</Button>
<Button x:Name="commentButton" Width="40" Height="40" Grid.Column="2" Grid.Row="1" Tag="{Binding projectId}" Click="CommentButtonClick" Foreground="{StaticResource procedure_app_orange_text }" IsTapEnabled="True">
<Button.Background>
<ImageBrush ImageSource="Asset/step_comment.png">
</ImageBrush>
</Button.Background>
</Button>
<Button x:Name="imageButton" Width="40" Height="40" Grid.Column="3" Grid.Row="1" Tag="{Binding projectId}" Click="ImageButtonClick" Foreground="{StaticResource procedure_app_orange_text }">
<Button.Background>
<ImageBrush ImageSource="Asset/step_image.png">
</ImageBrush>
</Button.Background>
</Button>
</Grid>
</Border>
</DataTemplate>
</ListView.ItemTemplate>
無効な画像はすべて同じ画像ですか? –
@AnthonyRussell例:プロジェクト1では、コメントボタンが無効になります。だから私はそれがグレーの色で無効になっているように表示されるコメントボタンの別のアイコンを表示する必要があります。プロジェクト2では、イメージボタンが無効になります。プロジェクト3では、コメントボタンを非表示にする必要があります。私は2つの行動をしたい。一部のボタンを非表示にし、一部のボタンの画像を変更します。これらはプロジェクトによって異なります。各ボタンには、橙色の画像と灰色の画像の2つの画像があります。 – Madhu
グレーの色を作成する必要はありません。ボタンを無効にするだけで画像がグレースケールになります –