ListView で下記のようにすると背景色が個別にせっとできていますが、行全体になっています。
これを特定のセルを指定することは可能でしょうか?
列1 | 列2 | 列3 |
---|---|---|
WPF C# VS2015 | aaa | bbb |
上記のようなとき 「aaa のみに背景色を指定する」という具合
C#
1 2 <Window.Resources> 3 <local:UserComment x:Key="comment"/> 4 5<StackPanel> 6 <ListView Margin = "8,0" x:Name="lvUsers" MouseMove="listView_MouseMove" BorderThickness="1" Height="485" Width="340" 7 ItemsSource="{Binding Source={StaticResource comment}}" ScrollViewer.VerticalScrollBarVisibility="Auto"> 8 <ListView.Resources> 9 <Style TargetType="{x:Type ListViewItem}"> 10 <Style.Resources> 11 <Style TargetType="{x:Type TextBlock}"> 12 <Setter Property="ToolTip" Value="{Binding Text, RelativeSource={RelativeSource Self}}" /> 13 <Setter Property="Background" Value="{Binding BkColor}"/> 14 <Style.Triggers> 15 <DataTrigger Binding="{Binding IsChecked, ElementName=check3}" Value="True"> 16 <!-- <Setter Property="FontWeight" Value="Bold" /> --> 17 <Setter Property="TextWrapping" Value="Wrap" /> 18 </DataTrigger> 19 <!-- <DataTrigger Binding="{Binding BkColor}" Value="Blue"> 20 <Setter Property="Background" Value="{Binding BkColor}"/> 21 </DataTrigger>--> 22 </Style.Triggers> 23 </Style> 24 </Style.Resources> 25 <Setter Property="Template"> 26 <Setter.Value> 27 <ControlTemplate TargetType="{x:Type ListViewItem}"> 28 <!-- まず、元の見た目を再現 --> 29 <GridViewRowPresenter /> 30 </ControlTemplate> 31 </Setter.Value> 32 </Setter> 33 </Style> 34 </ListView.Resources> 35 36 <ListView.ItemsPanel> 37 <ItemsPanelTemplate> 38 <StackPanel Orientation="Vertical" HorizontalAlignment="Center" /> 39 </ItemsPanelTemplate> 40 </ListView.ItemsPanel> 41 <ListView.View> 42 <GridView> 43 <GridViewColumn Header = "No" Width="30" DisplayMemberBinding="{Binding No}" /> 44 <GridViewColumn Header = "Name" Width="80" DisplayMemberBinding="{Binding Name}" /> 45 <GridViewColumn Header = "Data" Width="170" DisplayMemberBinding="{Binding Data}" /> 46 </GridView> 47 </ListView.View> 48 </ListView> 49</StackPanel>
C#
1 public class UserCommentMember 2 { 3 public string _no = string.Empty; 4 public string _name = string.Empty; 5 public string _data = string.Empty; 6 public string _bkColor = string.Empty; 7 } 8 : 9 public string BkColor 10 { 11 get { return comment._bkColor; } 12 set 13 { 14 if (value != comment._bkColor) 15 { 16 comment._bkColor = value; 17 NotifyPropertyChanged("BkColor"); 18 } 19 } 20 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/20 05:56
2020/03/20 06:56 編集
2020/03/20 09:04