Tôi cố gắng để vượt qua các ListView hoặc GridView như một ConverterParameter Tuy nhiên, trong các thói quen Chuyển đổi các tham số đến như một loại chuỗiLàm thế nào để vượt qua GridView như một ConverterParameter
Dưới đây là một phần của danh sách XAML xem và lớp Converter.
Bất kỳ trợ giúp nào được đánh giá cao. Cảm ơn!!!
<ListView Name="SeqDtStDataListView1" Grid.Row="1"
DataContext="{Binding Path=DisplayDT[0], Converter ={StaticResource
CNVToColumn},ConverterParameter=?????}"
VerticalContentAlignment="Stretch" VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
SelectionChanged="SEQDatalistview_SelectionChanged" Margin="5">
<ListView.View >
<GridView x:Name="SeqDtStDataGridView1"/>
</ListView.View>
</ListView>
Chuyển đổi:
namespace MFTest.Converters
{
public class CNVToColumn : IValueConverter
{
public object Convert(object value,
Type targetType,
object parameter,
System.Globalization.CultureInfo culture)
{
DataTable dt = (DataTable)value;
GridView GV = (GridView)parameter; <========= fail here ===========
if (dt != null && GV != null)
foreach (var colum in dt.Columns) // Binding the Columns
{
DataColumn dc = (DataColumn)colum;
GridViewColumn column = new GridViewColumn();
column.DisplayMemberBinding = new Binding(dc.ColumnName);
column.Header = dc.ColumnName;
GV.Columns.Add(column);
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
Khi chạy trên một phần lớp lỗi này bật lên: Không thể đặt 'Binding' trên thuộc tính 'ConverterParameter' loại 'Binding'. Chỉ có thể đặt 'Binding' trên DependencyProperty của DependencyObject. –
@IrmiMrm - Câu trả lời ngắn .. bạn không thể làm điều đó .. dễ dàng. Bạn chỉ có thể liên kết với các thuộc tính DP trên các dẫn xuất của DependencyObject. Ràng buộc không đủ điều kiện - bạn đang cố gắng chỉ định một Ràng buộc cho thuộc tính ElementName của một Ràng buộc khác. Có vẻ quá phức tạp .. một giải pháp đơn giản cho vấn đề phải tồn tại. – Gishu