2017-05-23 10 views
0

これらの2つのプロパティをどのようにバインドできますか?私はSelectedValueのを試してみましたが、私はSelectedIndexをして、それを追加しようとしましたが、それは正しいものを結合しないIDをDataGrid.selecteditemにバインドする方法

System.NullReferenceException

を取得します。

私はのSelectedItemを試してみましたが、私は

を取得

System.InvalidCastExceptionの

もXAMLで結合してみました:私はこれらのプロパティをバインドするために使用して何をすべきかSelectedValuePath="ClientId"

私の質問?

Reservation rs = new Reservation(); 
{ 
     rs.ClientId = (int)ClientDataGrid.SelectedValue; 
     rs.RoomId = (int)AvailableRoomDataGrid.SelectedValue; 
} 

in class Reservation : 

public int? ClientId { get; set; } 
[ForeignKey("ClientId")] 
public Client Client { get; set; } 
+0

https://stackoverflow.com/questions/5809816/datagrid-binding-in-wpf – Master

答えて

0

ここはすばやく汚れたサンプルです。 ロード時に、私はグリッドを初期化し、いくつかのレコードを追加します。次に、ボタンをクリックすると、選択されたFNameはTheName変数に値を設定します。

私はこれを推測しています(あなたのクラスに合わせて)、SelectedItemの無効なキャストを処理します。 ((FamilyMember)dg_MainGrid.SelectedItem).FName

MainWindow.xaml

<Window x:Class="WpfApplication1.MainWindow" 
     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" 
     xmlns:local="clr-namespace:WpfApplication1" 
     mc:Ignorable="d" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <DataGrid x:Name="dg_MainGrid" HorizontalAlignment="Left" Margin="249,114,0,0" VerticalAlignment="Top" RenderTransformOrigin="-14.748,-2.867"/> 
     <Button x:Name="button" Content="Button" HorizontalAlignment="Left" Margin="238,291,0,0" VerticalAlignment="Top" Width="75" Click="button_Click"/> 
    </Grid> 
</Window> 

MainWindow.xaml.cs

using System.Windows; 
using System.ComponentModel; 

namespace WpfApplication1 
{ 

    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     BindingList<FamilyMember> Family = new BindingList<FamilyMember>(); 

     public MainWindow() 
     { 
      InitializeComponent(); 
      InitializeDG(); 
      AddFamilyMembers(); 
     } 

     private void InitializeDG() 
     { 
      dg_MainGrid.ItemsSource = Family; 
      dg_MainGrid.AutoGenerateColumns = true; 
     } 

     private void AddFamilyMembers() 
     { 
      Family.Add(new FamilyMember { FName = "Name1", LName = "D", Notes = "34" }); 
      Family.Add(new FamilyMember { FName = "Name2", LName = "L", Notes = "36" }); 
      Family.Add(new FamilyMember { FName = "Name3", LName = "D", Notes = "7" }); 
      Family.Add(new FamilyMember { FName = "Name3", LName = "D", Notes = "5" }); 
     } 
     private void button_Click(object sender, RoutedEventArgs e) 
     { 
      string TheName = ((FamilyMember)dg_MainGrid.SelectedItem).FName;//get the selected FName 
     } 
    } 

    public class FamilyMember 
    { 
     public string FName { get; set; } 
     public string LName { get; set; } 
     public string Notes { get; set; } 
    } 
} 
+0

Thxを!ちょうど私が必要なもの! – BooZzken

関連する問題