Как вы связываете ObservableCollections с ItemsSource? - PullRequest
1 голос
/ 29 ноября 2010
DataContextDataContext context1 = new DataContextDataContext();
    public MainWindow()
    {
        InitializeComponent();
        DataContext = new ObservableCollection<MyObject>();
        RadGridView1.Filtered+=new EventHandler<GridViewFilteredEventArgs>(RadGridView1_Filtered);
        ObservableCollection<MyObject> _MyObject = new ObservableCollection<MyObject>();
        foreach (var p in context1.Students)
        {
            _MyObject.Add(new MyObject { ID = p.StudentID, Name = p.StudentFN });
        }
    }

    void RadGridView1_Filtered(object sender, GridViewFilteredEventArgs e)
    {
        RadGridView1.ItemsSource = ObservableCollection<MyObject>();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {

    }
}

public class MyObject
{
    public int ID { get; set; }
    public string Name { get; set; }
}

Как связать мои ObservableCollections с ItemsSource?

Ответы [ 2 ]

4 голосов
/ 29 ноября 2010

Вы хотите установить ItemSource для экземпляра ObservableCollection, который вы создали в конструкторе:

RadGridView1.ItemsSource = _MyObject;
3 голосов
/ 29 ноября 2010

Вы можете сделать наблюдаемую коллекцию как общедоступное свойство в вашем code-behind / Presenter / Viewmodel, например,

public ObservableCollection<MyObject> MyObjectCollection {get;set;}

, тогда вы можете заполнить это, и привязка может быть кодом.

ItemsSource - это свойство зависимости, которое можно связать в XAML или коде, например, предположим, что вы хотите привязать к ListBox (скажем, с именем lstItems) ItemsSource, например (в приведенном ниже коде указано, что MyObjectCollection находится в codebehind

Binding bindingObject = new Binding("MyObjectCollection");
bindingObject.Source = this; //codebehind class instance which has MyObjectCollection
lstItems.SetBinding(ListBox.ItemsSource, bindingObject);

или в XAML,

<ListBox x:Name="lstItems" ItemsSource="{Binding Path=MyObjectCollection}"/>

для обоих вышеперечисленных способов вам нужно установить текст данных, который будет 'this' (для этого конкретного решения).

Но, возможно, выхочу изучить основную привязку данных WPF, где можно понять свойства зависимости, объекты привязки, режимы привязки и т. д.

http://msdn.microsoft.com/en-us/library/aa480224.aspx http://msdn.microsoft.com/en-us/library/ms750612.aspx http://joshsmithonwpf.wordpress.com/2008/05/19/gradual-introduction-to-wpf-data-binding/

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