0

私は wpf mvvm を初めて使用します。選択時にデータ グリッドから値を取得するために、オブジェクト データ型のプロパティを作成しました。データ グリッドの行をクリックすると、名、姓、都市、州を含む値のセットを取得しますピン、モバイル番号、メール ID、従業員 ID など、更新目的でそこから従業員 ID を取得する必要があります..しかし、オブジェクト データ型で宣言されたプロパティからこれらの値を取得する方法がわかりません..助けてください.. ..\

これは私のビューモデルです

public object selectedEmployee;
public object SelectedEmployee
{
    get
    {
        return selectedEmployee;
    }
    set
    {
        selectedEmployee = value;
        OnPropertyChanged("SelectedEmployee");
    }
}

これは私のxamlコードです

<DataGrid Grid.Row="2" x:Name="grdEmployee" SelectedItem="{Binding SelectedEmployee, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding EmployeeDatatable, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True}" AutoGenerateColumns="False"  IsReadOnly="True"  HorizontalAlignment="Center" Margin="59,0,86,12" Width="492" CanUserAddRows="False"  
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Emp_id}" Header="Employee ID"></DataGridTextColumn>
            <DataGridTextColumn Binding="{Binding FirstName}" Header="FirstName"></DataGridTextColumn>
            <DataGridTextColumn Binding="{Binding LastName}" Header="LastName"></DataGridTextColumn>
            <DataGridTextColumn Binding="{Binding Age}" Header="Age"></DataGridTextColumn>
            <DataGridTextColumn Binding="{Binding ZipCode}" Header="ZipCode"></DataGridTextColumn>
            <DataGridTextColumn Binding="{Binding PhoneNumber}" Header="PhoneNumber"></DataGridTextColumn>
            <DataGridTextColumn Binding="{Binding MobileNumber}" Header="MobileNumber"></DataGridTextColumn>
            <DataGridTemplateColumn>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button Name="btnEdit" Content="Edit"></Button>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

        </DataGrid.Columns>

    </DataGrid>
4

1 に答える 1

0

おい、変数に何らかのタイプのカスタムオブジェクト(それらのプロパティを持つ)を入れたに違いありません。objectバックを元の型にキャストするobjectだけで、プロパティに再びアクセスできるようになります。型がわからないので、この例では、Employeeこれらのプロパティを持つ という名前のクラスがあるとします。オブジェクトをキャストする方法は次のとおりです。

Employee employee = (Employee)yourRowObject;
// Now you can access the properties. For example...
string fullName = string.Concat(employee.Firstname, " ", employee.LastName);
int employeeId = employee.Id;
于 2013-09-17T08:29:19.850 に答える