简体   繁体   English

如何在RadGridView的一行中填充数据?

[英]How do you fill data in a row of a RadGridView?

I want to save and load settings from a grid. 我想从网格保存和加载设置。 When I save the settings, this settings will saved in a file. 当我保存设置时,此设置将保存在文件中。 When I load the settings will be placed in the grid again. 加载时,设置将再次放置在网格中。 Only the data are not shown in the grid. 只有数据未显示在网格中。 What is the reason? 是什么原因?

The xaml.cs: xaml.cs:

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        string fileName = @"C:\temp\myFile.txt";
        private Stream stream;

        public MainWindow()
        {
            InitializeComponent();
            InitializeSettings();
            InitializeDataContext();
        }

        private void InitializeSettings()
        {
            using (var filestream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Read))
            {
                PersistenceManager manager = new PersistenceManager();
                manager.Load(filestream);
            }
        }

        private void InitializeDataContext()
        {
            DataContext = new ViewModel();
        }

        private void Window_Closing(object sender, CancelEventArgs e)
        {
            PersistenceManager manager = new PersistenceManager();
            stream = manager.Save(myGrid);
            using (var fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write))
            {
                stream.CopyTo(fileStream);
            }
        }
    }
}

The xaml-file: xaml文件:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
        xmlns:local="clr-namespace:WpfApplication1"
        Title="MainWindow"
        Height="350"
        Width="525"
        Closing="Window_Closing">
    <StackPanel x:Name="LayoutRoot">
        <telerik:RadGridView x:Name="myGrid"
                             IsReadOnly="False"
                             ItemsSource="{Binding Path=Afspraken, Mode=OneWay}"
                             AddingNewDataItem="myGrid_AddingNewDataItem"
                             RowEditEnded="myGrid_RowEditEnded"
                             AutoGenerateColumns="False"
                             CanUserSortColumns="True"
                             CanUserResizeColumns="True"
                             telerik:PersistenceManager.StorageId="myGrid">
            <telerik:RadGridView.Columns>
                <telerik:GridViewDataColumn UniqueName="Afspraak"
                                            Header="Afspraak"
                                            DataMemberBinding="{Binding Path=Omschrijving, Mode=OneWay}"/>
                <telerik:GridViewDataColumn UniqueName="Taak"
                                            Header="Taak"
                                            DataMemberBinding="{Binding Path=Opdracht, Mode=OneWay}"/>
                <telerik:GridViewDataColumn UniqueName="UniqueIdea"
                                            Header="Unique Idea"
                                            DataMemberBinding="{Binding Path=PrimaryId, Mode=OneWay}"/>
            </telerik:RadGridView.Columns>
        </telerik:RadGridView>
    </StackPanel>
</Window>

And the viewmodel: 和视图模型:

    public class ViewModel : ViewModelBase
    {
        public ViewModel()
        {
            ReadData();
        }

        public void ReadData()
        {
            afspraken.Add(new Afspraak() { Omschrijving = "Afspraak 1", Opdracht = "Opdracht 1", PrimaryId = 1 });
            afspraken.Add(new Afspraak() { Omschrijving = "Afspraak 2", Opdracht = "Opdracht 2", PrimaryId = 2 });
        }

        private ObservableCollection<Afspraak> afspraken = new ObservableCollection<Afspraak>();
        public ObservableCollection<Afspraak> Afspraken
        {
            get { return afspraken; }
            set
            {
                if (afspraken != value)
                {
                    afspraken = value;
                    OnPropertyChanged("Afspraken");
                }
            }
        }
   }

You don't tell the PersistenceManager what control to load, as you don't pass myGrid as an argument to the PersistenceManager.Load() method: 您没有告诉PersistenceManager加载什么控件,因为没有将myGrid作为参数传递给PersistenceManager.Load()方法:

using (var filestream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Read))
{
    PersistenceManager manager = new PersistenceManager();
    manager.Load(filestream);
}

From the Telerik documentation it should look like this, for a TreeView : Telerik文档中 ,对于TreeView应该看起来像这样:

private void Load(object sender, RoutedEventArgs e)
{
    stream.Position = 0L;
    PersistenceManager manager = new PersistenceManager();
    manager.Load(treeView, stream);
}

I think you need to adapt this to your scenario. 我认为您需要对此进行调整。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何以编程方式访问RadGridView行? - How to access RadGridView row programmatically? 如何在 RadGridView 中创建行号克隆 - How to create a Row Number cloumn in RadGridView 如何使用 PowerPoint 2010 互操作在自动形状上设置“无填充”填充 - How do you set a “No fill” Fill on a autoshape with the PowerPoint 2010 interop 如何在运行时更改RadGridView的标题文本? - How can you change on runtime the header text from a RadGridView? 如何在 C# 中向上和向下移动 RadGridView(在 Telerik 中)选定的行? - How To Move RadGridView(in Telerik) Selected Row UP and DOWN In C#? 过滤后如何计算radgridview中每一列到最后一行的平均值? - How to calculate average for each column in radgridview into a last row after filtering? 如何在 radGridView WinForm 中更改搜索行文本框的占位符? - How to Change placeholder of textBox of search row in radGridView WinForm? 如何绑定CommandParameter并在radgridview中获取选定的行ID - How to bind CommandParameter and get selected row id in radgridview 如何更改鼠标 hover 上的 telerik:RadGridView 行背景颜色 - How to change telerik:RadGridView row background color on mouse hover 将新行添加到 RadGridView 时如何防止 RowValidating 事件 - WPF - How to prevent RowValidating event when a new row is added to a RadGridView - WPF
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM