0

私は、C# で Win フォーム アプリケーションに取り組んでいます。ユーザー入力ベースで lable.text を変更できる機能をアプリケーションに追加したいと考えています。

アプリケーションを再コンパイルしたり、アプリケーションの言語を変更したりすることなく、いつでも変更できる定義済みの値としていくつかのラベルを設定できるように、xml ファイルを使用したい

フォーム アプリケーションで使用したい xml ファイルがあります。

    <?xml version="1.0" encoding="utf-8" ?>
  <product>
    <product_id>1</product_id>
    <product_name>Product 1</product_name>
    <product_price>1000</product_price>
  </product>
  <product>
    <product_id>2</product_id>
    <product_name>Product 2</product_name>
    <product_price>2000</product_price>
  </product>
  <product>
    <product_id>3</product_id>
    <product_name>Product 3</product_name>
    <product_price>3000</product_price>
  </product>
  <product>
    <product_id>4</product_id>
    <product_name>Product 4</product_name>
    <product_price>4000</product_price>
  </product>

私のアプリケーションでは、テキストボックス1、テキストボックス2、テキストボックス3、ラベル 1 、ラベル2、ラベル3のテキストがあります

textbox1のテキスト変更についてlable1.textの値を変更したいたとえば、id に従って、ユーザーがtextbox1に 1 を入力した場合、lable テキストを製品 1 に変更する必要があります

C#とプログラミングの初心者として、これを機能させる方法がわかりません....

4

2 に答える 2

1

Linq を使用して xml を Xml に解析できます。テキスト変更イベントで、次の操作を行います。

int id;
if (!Int32.TryParse(textbox1.Text, out id))
    return; // do nothing if not integer entered

XDocument xdoc = XDocument.Load(path_to_xml_file);
var product = xdoc.Descendants("product")
                  .FirstOrDefault(p => (int)p.Element("product_id") == id);

lable1.Text = (product == null) ? "" : (string)product.Element("product_name");

ところで、質問をするときは、常にあなたがすでに持っているコードを提供して、あなたが行き詰まった場所を教えてください. また、質問の下でコメントしたように、xml にはいくつかのルート要素があるため、無効です。すべての製品要素を のようなルートにラップします<products>

于 2013-07-02T18:29:11.223 に答える
0

C# での XML の読み取りと書き込みの問題を分割することを検討し、各回答を探します。また、Settings.Settings ファイルを使用して設定を変更したい場合は、ユーザーまたはアプリケーションを選択できます。

XML のビルド

XML XPath の読み取り

Ream XML XmlReader、シングルパス

設定ファイル

于 2013-07-02T18:20:08.940 に答える