@Stupid 하시려는게 이게 맞을까요?
실행 이미지
XAML
이미지 파일의 빌드속성은 Resource
입니다.
이미지를 ImageBrush 리소스로 따로 만든 이유는 별 뜻이 없습니다. 소스코드가 짤릴까봐 위로 빼놓은겁니다.
그리고 Grid Background에 ImageBrush를 해주셨잖아요?
그럼 Width, Height 사이즈를 지정해주셔야 합니다. (기본이 Auto
으로 설정되어있기 때문에)
<ListView ItemsSource="{Binding Files}">
<ListView.Resources>
<ImageBrush x:Key="img"
ImageSource="/ListViewExample1;component/Images/vs.png"/>
</ListView.Resources>
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Row="0" Grid.RowSpan="2">
<Grid Width="50" Height="50">
<Grid.Background>
<ImageBrush ImageSource="img"/>
</Grid.Background>
</Grid>
</StackPanel>
<TextBlock Text="{Binding FileName}"
Grid.Row="0"
Grid.Column="1"
VerticalAlignment="Bottom"/>
<TextBlock Text="{Binding FullPath}"
Grid.Row="1"
Grid.Column="1"
VerticalAlignment="Top"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
ViewModel
간단한 List 타입의 임시 데이터 Files 준비
public class MainViewModel
{
public List<FileData> Files { get; set; }
public string Name { get; set; } = "james";
public MainViewModel()
{
List<FileData> fileDatas = new();
fileDatas.Add(new FileData { FileName = "RefCount.txt",
FullPath = @"C:\Program Files (x86)\Common Files" });
fileDatas.Add(new FileData { FileName = "Adobe Desktop Service.exe",
FullPath = @"C:\Program Files (x86)\Common Files" });
Files = fileDatas;
}
}
저도 제 깃허브 레포에 간단하게 샘플로 올려두었습니다.
https://github.com/devncore/study/tree/main/src/ListViewExample1