0

これは、WPFを使用する最初の日です。楽しい!

現在、。を含むファイルを開く/返すWPFアプリケーションがありますOpenFileDialog。そのデータを分解して抽出する既存のスクリプトがすでにあります。必要なのは、そのデータにアクセスして(バインドすると思います)、XAMLの要素に表示できるようにすることです。私はこれを行う方法を理解することができませんでした。

これが私の設定です。

MainWindow.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
            }
        }
    }
}

MainWindow.xaml

<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ファイルは単に。の相互作用ロジックですMainWindow。では、なぜデータを表示するようにTextBoxを構成する方法がわからないの_gridsでしょうか。

、、、、、などをいじりましたがx:Name、これx:Referenceに適用されるガイドはまだ見つかりません。そして、それはおそらく私がまだWPFのすべての側面を理解していないためです。しかし、私はここで何が間違っているのですか?Window.ResourcesDataContextBinding

(代わりに、脳が耳からにじみ出さないWPFチュートリアルに満足するでしょう。)

4

2 に答える 2

1

C# で宣言_gridsしましたが、ビジュアル ツリーに追加されていません。

これを行う最も簡単な方法は、XAML でオブジェクトを宣言することです (ただし、aGridSetが何であるかは 100% わかりません。それに関するドキュメントは見つかりません)。したがって、単純なGrid場合は次のようになります。

<DockPanel>
    <Grid x:Name="MyGrid" />
</DockPanel>

名前を付けることで、コードでアクセスできます。

MyGrid.Children.Add(something);

バインドを使用するにDataContextは、ウィンドウの を設定する必要があります。最も簡単な方法は次のとおりです。

this.DataContext = this;

あなたのコンストラクタで。

于 2013-02-05T20:46:22.443 に答える
0

ボタンを使用しますか?

XAML:

<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>
    <Grid>
      <Button x:Name="Open" Click="Open_OnClick" />

      <TextBox x:Name="tbDisplay"/>
    </Grid>
  </DockPanel>
</Window>

C#

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";
            }
        }
    }
}
于 2013-02-05T21:00:05.357 に答える