C# WPF自存取
这是我在WPF的第一天。有趣 我目前有一个WPF应用程序,它使用C# WPF自存取,c#,wpf,xaml,C#,Wpf,Xaml,这是我在WPF的第一天。有趣 我目前有一个WPF应用程序,它使用OpenFileDialog打开/返回一个文件。我已经有了一个解构和提取数据的脚本。我需要的是能够访问该数据(我猜是绑定到该数据)并在XAML中的元素中显示它。我还不知道怎么做 这就是我的设置 main window.xaml.cs: namespace GridView { public partial class MainWindow { private GridSet<byte> _
OpenFileDialog
打开/返回一个文件。我已经有了一个解构和提取数据的脚本。我需要的是能够访问该数据(我猜是绑定到该数据)并在XAML中的元素中显示它。我还不知道怎么做
这就是我的设置
main window.xaml.cs:
namespace GridView
{
public partial class MainWindow
{
private GridSet<byte> _grids;
public MainWindow()
{
InitializeComponent();
}
private void Open_OnClick(object sender, RoutedEventArgs e)
{
var openDialog = new OpenFileDialog();
if (openDialog.ShowDialog().Value)
{
//Populate _grids with data
}
}
}
}
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" x:Class="GridView.MainWindow"
Title="Grid View" Width="800" Height="600" WindowStartupLocation="CenterScreen">
<DockPanel>
...
"Open_OnClick" here
...
<TextBox/>
</DockPanel>
</Window>
名称空间网格视图
{
公共部分类主窗口
{
私有网格集\u网格;
公共主窗口()
{
初始化组件();
}
private void Open_OnClick(对象发送方,RoutedEventArgs e)
{
var openDialog=新建OpenFileDialog();
if(openDialog.ShowDialog().Value)
{
//用数据填充网格
}
}
}
}
主窗口.xaml:
namespace GridView
{
public partial class MainWindow
{
private GridSet<byte> _grids;
public MainWindow()
{
InitializeComponent();
}
private void Open_OnClick(object sender, RoutedEventArgs e)
{
var openDialog = new OpenFileDialog();
if (openDialog.ShowDialog().Value)
{
//Populate _grids with data
}
}
}
}
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" x:Class="GridView.MainWindow"
Title="Grid View" Width="800" Height="600" WindowStartupLocation="CenterScreen">
<DockPanel>
...
"Open_OnClick" here
...
<TextBox/>
</DockPanel>
</Window>
...
这里是“打开”按钮
...
如您所见,.cs文件只是主窗口的交互逻辑。那么,究竟为什么我不能弄清楚如何配置我的文本框,以便在\u网格中显示数据呢
我已经摆弄了x:Name
,x:Reference
,Window.Resources
,DataContext
,Binding
,等等,但我还没有找到适用于此的指南。这可能是因为我仍然不理解WPF的每一个方面。但我做错了什么
(或者,我会对WPF教程感到满意,因为它不会让我的大脑渗到耳朵里。)您已经在C#中声明了\u grids
,但它没有添加到可视化树中
最简单的方法是在XAML中声明对象(尽管我不能100%确定GridSet
是什么-我找不到任何关于它的文档)。因此,如果它是一个简单的网格
,您会:
<DockPanel>
<Grid x:Name="MyGrid" />
</DockPanel>
要使用绑定,必须设置窗口的DataContext
。最简单的方法是:
this.DataContext = this;
在构造函数中。是否要使用按钮
XAML:
C#
名称空间网格视图
{
公共部分类主窗口
{
私有网格集\u网格;
公共主窗口()
{
初始化组件();
}
private void Open_OnClick(对象发送方,RoutedEventArgs e)
{
var openDialog=新建OpenFileDialog();
if(openDialog.ShowDialog().Value)
{
//用数据填充网格
tbDisplay.Text=“foo”;
}
}
}
}
将
更改为
,然后您可以访问主窗口.xaml.cs
中的文本框
,使用myTextBox.text=“Hello World.”设置文本代码>和构造函数中的InitializeComponent()下
putthis.DataContext=this代码>。啊,太好了!GridSet只是我以一种干净、自定义的方式与一堆网格交互的一种方式。关键是要能够在两个文件之间进行通信,您回答了这个问题。
namespace GridView
{
public partial class MainWindow
{
private GridSet<byte> _grids;
public MainWindow()
{
InitializeComponent();
}
private void Open_OnClick(object sender, RoutedEventArgs e)
{
var openDialog = new OpenFileDialog();
if (openDialog.ShowDialog().Value)
{
//Populate _grids with data
tbDisplay.Text = "foo";
}
}
}
}