XAML 코드 :Column에 CellTemplates가있는 곳에서 프로그래밍 방식으로 GridView를 만드는 방법은 무엇입니까?
<ListView x:Name="ListDisplay"
Grid.Column="1">
<ListView.View>
<GridView>
<GridViewColumn x:Name="Column_1"
x:FieldModifier="private"
Header="Column1"
Width="200">
<GridViewColumn.CellTemplate>
<DataTemplate>
<DockPanel>
<Image Width="15"
Height="15"
Source="{Binding Icon}"
DockPanel.Dock="Left"/>
<Label Content="{Binding Column1_Content}"
Width="180"
FontSize="12"
HorizontalContentAlignment="Left"
DockPanel.Dock="Left"/>
</DockPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn x:Name="Column_2" x:FieldModifier="private"
Header="Column2"
DisplayMemberBinding="{Binding Column2_Content}"
Width="175"/>
<GridViewColumn x:Name="Column_3"
x:FieldModifier="private"
Header="Column3"
DisplayMemberBinding="{Binding Column3_Content}"
Width="100"/>
<GridViewColumn x:Name="Column_4" x:FieldModifier="private"
Header="Column4"
DisplayMemberBinding="{Binding Column4_Content}"
Width="100"/>
</GridView>
</ListView.View>
</ListView>
C# 클래스 :
internal class MyDataClass
{
public BitmapSource Icon { get; set; }
public string Column1_Content { get; set; }
public string Column2_Content { get; set; }
public string Column3_Content { get; set; }
public string Column4_Content { get; set; }
}
이 4 열이있는 ListView에 기본적이며, 첫 번째 열은 왼쪽의 이미지를 가지고있다. 모든 것이 지금까지 작동합니다.
는 내가 뭘 원하는 C# 코드로 전체에게 코드의
<ListView.View>
...
</ListView.View>
부분을 변환합니다.
그래서 코드는 다음과 같이 표시됩니다
GridView View = new GridView();
GridViewColumn Column_2 = new GridViewColumn()
{
Header = "Column2",
DisplayMemberBinding = new Binding("Column2_Content"),
Width = 175
};
// Same thing for columns 3 and 4
View.Columns.Add(Column_2);
View.Columns.Add(Column_3);
View.Columns.Add(Column_4);
ListDisplay.View = View;
문제는, 나는 아이콘 소스 및 레이블 내용에 바인딩을하고 C#에서 (프로그래밍 열 1의 GridViewColumn을 만드는 방법을 전혀 생각이 없다).
내가 그것을 코드에 DataTemplate을 만들 수있는 좋은 방법 같아요. – lindexi
그냥 테스트하고 매력처럼 작동합니다. 하나의 수정 사항 : 두 항목의 WidthProperty/HeightProperty를 FrameWorkElement.WidthProperty, FrameWorkElement.HeightProperty로 대체했습니다. FontSizeProperty 및 HorizontalAlignmentProperty에 Label.FontSizeProperty 및 Label.HorizontalAlignmentProperty를 지정하고 숫자 값을 15.0 등으로 설정합니다. – Andrei