Binding בין GridView לבין רשימה

zahalul

New member
Binding בין GridView לבין רשימה

שלום,
רצ"ב קובץ xaml וקובץ cs. ב- xaml יש design של GridView (של Telerik) וב- cs אני מוסיף לטבלה 2 שורות.
קוד:
public class ChannelRecord
    {
        public int Channnel { get; set; }
    }

    public partial class MainWindow : Window
    {
        private int InitializeWindow()
        {
            List<ChannelRecord> users = new List<ChannelRecord>();
            users.Add(new ChannelRecord() { Channnel = 1 });
            users.Add(new ChannelRecord() { Channnel = 2 });
            dgUsers.ItemsSource = users;
            return 0;
        }

        public MainWindow()
        {
            InitializeComponent();

            InitializeWindow();
        }
    }
קוד:
<Window x:Class="TelerikWpfApp1.MainWindow"
                xmlns="[URL]http://schemas.microsoft.com/winfx/2006/xaml/presentation[/URL]"
                xmlns:x="[URL]http://schemas.microsoft.com/winfx/2006/xaml[/URL]"
                xmlns:telerik="[URL]http://schemas.telerik.com/2008/xaml/presentation[/URL]"
                Title="MainWindow" Height="350" Width="525">
        <Grid>
            <telerik:RadGridView x:Name="dgUsers"
                     AutoGenerateColumns="False" ShowGroupPanel="False">
            <telerik:RadGridView.Columns>
                    <telerik:GridViewDataColumn     Header="Channel" DataMemberBinding="{Binding Channel}" />
                </telerik:RadGridView.Columns>
            </telerik:RadGridView>
        </Grid>
</Window>

הבעיה היא שלאחר הוספת 2 שורות, אם אני מעדכן את הטבלה ב- GUI, איך אני גורם לרשימה להתעדכן במקביל ?
תודה,
צהלול
 

ziv1f

New member
למיטב הבנתי הרשימה מתעדכנ בהתאם

אבל אם אני מבין את מה שכתבת, אז הרשימה שיצרת נוצרה פעם אחת כמשתנה זמני של פונקציה (InitializeWindow) ומהרגע שיצאת מהפונקציה אין לך יותר רפרנס אליה, למרות שדרך הפרופרטי ItemsSource של הגריד אתה יכול לגשת אל הרשימה. זו שיטה שהיא לכאורה MVVM אבל למעשה אין לך VIEWMODEL אלא רק מקור נתונים שקישרת פעם אחת אל הגריד וזהו.

אחד היתרונות הכי גדולים שאני מצאתי בעבודה עם MVVM, זה שלא צריך "לחפש" את הנתונים, כי הם תמיד נמצאים בתוך ה-ViewModel וכמובן גם אחרי שעידכנת אותם לא צריך "לאסוף" אותם שוב, כי הבינדינג גורם לזה ששינויים בגריד ישנו ישירות את ה-ViewModel שהגריד נשען עליו

בברכה,
זיו
 
למעלה