Проблема связывания WPF - PullRequest
       8

Проблема связывания WPF

3 голосов
/ 25 октября 2009

У меня есть этот объект:

    class a 
    { 
        public string Application; 
        public DateTime From, To;
    }

И я объявляю этот список с ним:

    ObservableCollection<a> ApplicationsCollection = 
        new ObservableCollection<a>();

В моем XAML у меня есть:

    <ListView Height="226.381" Name="lstStatus" Width="248.383" HorizontalAlignment="Left" Margin="12,0,0,12" VerticalAlignment=">
        <ListView.View>
            <GridView>
                <GridViewColumn Width="140" Header="Application"
                                DisplayMemberBinding="{Binding Path=Application}"/>
                <GridViewColumn Width="50" Header="From" 
                                DisplayMemberBinding="{Binding Path=From}"/>
                <GridViewColumn Width="50" Header="To" 
                                DisplayMemberBinding="{Binding Path=To}"/>
            </GridView>
        </ListView.View>
    </ListView>

Когда я делаю:

        lstStatus.ItemsSource = ApplicationsCollection;

Я получаю кучу ошибок, и в моем списке ничего не отображается:

System.Windows.Data Error: 39 : BindingExpression path error: 'Application' property not found on 'object' ''a' (HashCode=60325168)'. BindingExpression:Path=Application; DataItem='a' (HashCode=60325168); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
System.Windows.Data Error: 39 : BindingExpression path error: 'From' property not found on 'object' ''a' (HashCode=60325168)'. BindingExpression:Path=From; DataItem='a' (HashCode=60325168); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
System.Windows.Data Error: 39 : BindingExpression path error: 'To' property not found on 'object' ''a' (HashCode=60325168)'. BindingExpression:Path=To; DataItem='a' (HashCode=60325168); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')

Очевидно, объект воспринимается как имеющий тип a, а свойства a явно имеют правильные свойства, так почему же это не работает?

Ответы [ 3 ]

7 голосов
/ 25 октября 2009

Похоже, что WPF не может привязываться к полям напрямую, вы должны использовать такие свойства:

class a
{
    public string Application { get; set; }
    public DateTime From { get; set; }
    public DateTime To { get; set; }
}
3 голосов
/ 25 октября 2009

Хорошо, вы используете поля, но вам нужны свойства

class a 
{ 
    public string Application
    {
       get;set;
    }
    public DateTime From
    {
       get;set;
    } 
    public DateTime To
    {
       get;set;
    } 

}
0 голосов
/ 25 октября 2009

Проверьте эту статью - http://www.codeproject.com/KB/miscctrl/GridView_WPF.aspx Я думаю, что вы пропускаете директиву ItemsSource =.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...