Estoy tratando de establecer la ItemsSource propiedad de un DataGrid nombre dgIssueSummary a ser un ObservableCollection nombre IssueSummaryList. En la actualidad, todo está funcionando cuando me puse el ItemsSource propiedad en mi código-detrás:

public partial class MainPage : UserControl
{
    private ObservableCollection<IssueSummary> IssueSummaryList = new ObservableCollection<IssueSummary>

    public MainPage()
    {
        InitializeComponent();
        dgIssueSummary.ItemsSource = IssueSummaryList
    }
}

Sin embargo, prefiero conjunto de la ItemsSource propiedad en XAML, pero no puedo conseguir que funcione. Aquí está el código XAML que tengo:

<sdk:DataGrid x:Name="dgIssueSummary" AutoGenerateColumns="False"
                ItemsSource="{Binding IssueSummaryList}" >
    <sdk:DataGrid.Columns>
        <sdk:DataGridTextColumn Binding="{Binding ProblemType}" Header="Problem Type"/>
        <sdk:DataGridTextColumn Binding="{Binding Count}" Header="Count"/>
    </sdk:DataGrid.Columns>
</sdk:DataGrid>

¿Qué tengo que hacer para que el ItemsSource de la propiedad a ser el IssueSummaryList en XAML en lugar de C#?

3 Comentarios

  1. 3

    Que usted necesita para hacer «IssueSummaryList» una propiedad. Si usted hace esto, usted puede unirse a él directamente. Usted no puede enlazar a través de Xaml a un campo privado.

    Usted también tendrá que establecer el DataContext a «this» (o utilice otro método para llegar a encontrar la instancia adecuada).

    • No es el DataContext cosa sólo es necesario si el uso de la M-V-VM Patrón para la unión ? Parece que el uso justo detrás de los archivos de código
    • No. El enlace funciona a través de un DataContext. El patrón MVVM toma ventaja de esto, pero el Enlace de Datos en WPF (y Silverlight) es siempre obligatorio para una propiedad en el DataContext siendo utilizado por el UIElement.
  2. 1

    Su IssueSummaryList es privado. Usted necesita para hacer de ella una Propiedad con get y set

    public ObservableCollection<IssueSummary> IssueSummaryList 
    {
         get
         {
            //...
         }
    }
  3. 1

    El XAML es la correcta, así que el problema debe estar en la Unión.

    • Es el ObservableCollection expuesto como una propiedad?
    • Cómo se han de establecer el Enlace? En el caso más simple de usar un código como:

      este.DataContext=this;

    en el Window_Load eventhandler

Dejar respuesta

Please enter your comment!
Please enter your name here