PDA

View Full Version : RowDetailsTemplate در الگوی mvvm - نمیتونم به دیتا کانتکست سطر انتخاب شده وصلش کنم...



سیدسبحان
چهارشنبه 09 دی 1394, 12:22 عصر
سلام به همه دوستان
من خیلی گشتم . خیلی ! ولی واقعا نمیدونم دیگه چطوری باید توی گوگل بگردم.

آقا من داخل دیتا گریدم، میخام وقتی که یک سطر انتخاب میشه، یه دیتا گرید باز شه (یا اینکه چندتا textBlock) و بقیه اطلاعات مربوط به سطر انتخاب شده رو نشون بده.

مثلا اینطوری:

https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTMXmNirzuP9WgVqo47NGcz4xaMQ704_ w8SwyYOfvV_Q5KdcgovTA

چیزی که پیدا کردم این هست:


<DataGrid
FontSize="15"
FontFamily="Tahoma"
ItemsSource="{Binding Persons}"
SelectedItem="{Binding SelectedPerson,Mode=TwoWay,UpdateSourceTrigger=Pro pertyChanged}">

<DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Margin="5,5,5,5" Orientation="Vertical">


<DataGrid Margin="5,10,10,10"
ItemsSource="{Binding DataContext.LoadGrid,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"
HorizontalAlignment="Left"
AutoGenerateColumns="False"

x:Name="dataGridDetails" >
<DataGrid.Columns>
<DataGridTextColumn Header="نوع اوپراتور موبایل" Binding="{Binding TypeMobile}"/>
<DataGridTextColumn Header="آدرس" Binding="{Binding Address}"/>
</DataGrid.Columns>
</DataGrid>
</StackPanel>


</DataTemplate>
</DataGrid.RowDetailsTemplate>
<DataGrid.Columns >








<DataGridTextColumn Header="کد"
Binding="{Binding Path=Id}"/>
</DataGrid.Columns>



</ِDataGrid>


اینم viewmodel م:



private ObservableCollection<View_Full> _persons { get; set; }
public AllPersonViewModel()
{


using (var db = new HamzeNejadEntities())
{
Persons = new ObservableCollection<View_Full>(db.View_Full.ToList());

}

/// <summary>
/// تمام اشخاصی که در دیتاگریداصلی نمایش داده میشود
/// </summary>
public ObservableCollection<View_Full> Persons
{
get { return this._persons; }
set
{
if (value.Equals(this._persons))
{
return;
}
this._persons = value;
base.OnPropertyChanged("Persons");
}
}

public View_Full SelectedPerson
{
get { return _selectedPerson; }
set
{
if (value.Equals(this.SelectedPerson))
{
return;
}
_selectedPerson = value;

OnPropertyChanged("SelectedPerson");
}
}


}


اتفاقی که میفته این هست که تمام رکورد های داخل دیتا بیسم رو نشون میده (البته فقط اون ستون هایی که تعریف کردم براش). ولی من میخام فقط اطلاعات اون رکوردی که در دیتاگرید اصلی انتخاب شده رو نشون بده.

ممنون میشم کمک کنید.
یه سایت خارجی که کدش رو نوشته باشه هم واقعا میتونه کارگشا باشه. من که هرچی گشتم ندیدم.

سیدسبحان
چهارشنبه 23 دی 1394, 19:26 عصر
آموزش - 27 مگابایت (http://microclip.ir/?download=rowdetailstemplate-%D8%AF%D8%B1-%D8%A7%D9%84%DA%AF%D9%88%DB%8C-mvvm)