Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF自存取_C#_Wpf_Xaml - Fatal编程技术网

C# 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> _

这是我在WPF的第一天。有趣

我目前有一个WPF应用程序,它使用
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()下
put
this.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";
            }
        }
    }
}