0

vb6では、子ウィンドウから別の子ウィンドウに値を簡単に取得できます。たとえば、frm1.textbox1.text = frm2.listview.item.selectedindex ... wpfでこれを行うにはどうすればよいですか?

EmployeProfileという名前の子ウィンドウが2つあり、もう1つはPrintEmpProfileです... EmployeeProfileウィンドウにリストビューがあります...印刷ボタンをクリックすると、EmployeeProfileリストビューから値を取得できます。 ...。

これまでのところ、これは私が持っているものです。このコードはPrintEmpProfile内にあります

DataTable table = new DataTable("EmpIDNumber");
table.Columns.Add("IDNum", typeof(string));
for (int i = 1; i <= 100; i++)
{
    table.Rows.Add(new object[] { EmployeeProfile.????? });
}

EmployeeProfileリストビューからすべての値を取得する方法がわかりません。

4

2 に答える 2

0

リストビューのプロパティを作成できます。

   public ListView EmployeeListView
    {
        get
        {
            return IdOfYourListView;
        }
        set
        {
            IdOfYourListView = value;
        }
    }

今PrintEmpProfileでEmployeeProfileのオブジェクトを作成します

      EmployeeProfile empf = new EmployeeProfile();
      ListView MyListView = empf.EmployeeListView;
于 2012-11-14T01:15:45.760 に答える
0

子ウィンドウを開くときはいつでも、新しい子ウィンドウの参照をコレクションに入れてください。MyChildは、次のようにXAMLで定義された子ウィンドウであると思います。

<Window
    x:Class="TEST.MyChild"
    ...

App.xaml.csで子ウィンドウを保持する静的リストを定義できます

public partial class App : Application
{
    public static List<MyChild> Children
    {
        get
        {
            if (null == _Children) _Children = new List<MyChild>();
            return _Children;
        }
    }

    private static List<MyChild> _Children;
}

子ウィンドウを開くたびに、次のようにこのコレクションに追加します。

MyChild Child = new MyChild();
App.Children.Add(Child);
Child.Show();

また、子ウィンドウを閉じるときに、このコレクションから子を削除する必要があります。これは、ウィンドウのClosedイベントで実行できます。XMLで閉じたベントを定義します。

Closed="MyChild_Closed"

そして背後にあるコードで:

    private void MyChild_Closed(object sender, EventArgs e)
    {
        // You may check existence in the list first in order to make it safer.            
        App.Children.Remove(this); 
    }

子ウィンドウが他の子ウィンドウのListViewにアクセスする場合は常に、コレクションから子の参照を取得し、XAMLで定義されたListViewを直接呼び出します。

    MyChild ChildReference = App.Children.Where(x => x.Title == "Child Title").FirstOrDefault();
    if (null != ChildReference)
{
    ChildReference.listview.SelectedIndex = ...
}
于 2012-11-14T01:31:21.677 に答える