저는 WPF로 조금 놀고 있습니다. 내가 원하는 방식으로 작동하지 않는 코드는 다음과 같습니다.WPF에서 다른 유형으로 바인딩하는 방법은 무엇입니까?
<ListView Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" ItemsSource="{Binding FilesToUpload}">
<ListView.View>
<GridView>
<GridViewColumn Header="Filename" DisplayMemberBinding="{Binding FileName}">
</GridViewColumn>
<GridViewColumn Header="Uploaded" DisplayMemberBinding="{Binding Uploaded}">
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
ListSource의 ItemsSource는이 클래스의 컬렉션을 반환하는 클래스의 속성에 바인딩됩니다.
public class FileInformation
{
public String FileName { get; set; }
public ProgressBar Uploaded { get; set; }
public FileInformation(String file)
{
FileName = file;
Uploaded = new ProgressBar();
Uploaded.Value = 8;
Uploaded.BorderThickness = new System.Windows.Thickness(5);
}
}
위의 xaml 예제의 GridView에는 두 개의 열이 있습니다. 하나는 FileInformation 클래스의 FileName 속성에 바인딩되고 다른 하나는 Uploaded에 바인딩됩니다.
문제가 있습니다. Uploaded 속성은 ProgressBar를 반환하지만 Uploaded에 바인딩하는 열의 내용은 String입니다. ProgressBar의 ToString() 메서드의 반환 값입니다.).
문자열 대신 ProgressBar를 어떻게 표시 할 수 있습니까?
직접'ProgressBar'에 결합하지 마십시오 FileInformation 클래스의 속성입니다. 현재 코드에 액세스 할 수는 없지만 셀에 표시된 사각형의 너비를 진행률 막대의 '값'에 바인딩하여 진행률 표시 줄을 다시 만들 수 있어야합니다. – ChrisF