0
그리드에서 설정을 저장하고로드하려고합니다. 설정을 저장하면이 설정이 파일에 저장됩니다. 로드하면 설정이 다시 그리드에 배치됩니다. 데이터 만 그리드에 표시되지 않습니다. 그 이유는 무엇입니까?RadGridView의 행에있는 데이터를 어떻게 채우고 있습니까?
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);
}
}
}
}
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>
그리고 뷰 모델이 :
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");
}
}
}
}
충분하지 않습니다. 나는 filestream.Position = 0L를 놓았다. PersistenceManager 전에. – user1531040
'manager.Load (filestream);'를'manager.Load (myGrid, stream);'로 변경 했습니까? 단지 stream.Position의 할당을 추가하는 것은 물론 도움이되지 않습니다 ... – Marc