AftaB66
یک شنبه 20 بهمن 1392, 11:53 صبح
سلام.
من دیتاگریدم رو به یک پراپرتی که در CodeBehind همان Window تعریف شده بایند کرده ام .
<DataGrid x:Name="dg_Servers"
ItemsSource="{Binding Path=Lst_Servers}"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Width="*" Binding="{Binding Path= OS_NAME}" Header="مرکز" ></DataGridTextColumn>
<DataGridTextColumn Width="*" Binding="{Binding Path= IP}" Header="IP" ></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
در CodeBehind :
public partial class Frm_SelectServers : Window, INotifyPropertyChanged
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
private List<Server> _lst_Servers = new List<Server>();
public List<Server> Lst_Servers
{
get
{
if (_lst_Servers == null)
_lst_Servers = new List<Server>();
return _lst_Servers;
}
set
{
_lst_Servers = value;
if (PropertyChanged != null)
{
OnPropertyChanged("Lst_Servers");
}
}
}
و در Constructor :
DataContext=this;
ولی زمانی که به پراپرتی Lst_Servers آیتمی اضافه می کنم ، دیتاگریدم آپدیت نمی شود !
یه جا سرچ کردم گفته بود خود کلاسی که ازش پراپرتی ساختی (در مثال من کلاس Server ) رو هم باید از اینترفیس INotifyPropertyChanged به ارث ببری ، ولی اون کار رو هم کردم نشد !!!
راهنمایی لطفا ..
من دیتاگریدم رو به یک پراپرتی که در CodeBehind همان Window تعریف شده بایند کرده ام .
<DataGrid x:Name="dg_Servers"
ItemsSource="{Binding Path=Lst_Servers}"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Width="*" Binding="{Binding Path= OS_NAME}" Header="مرکز" ></DataGridTextColumn>
<DataGridTextColumn Width="*" Binding="{Binding Path= IP}" Header="IP" ></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
در CodeBehind :
public partial class Frm_SelectServers : Window, INotifyPropertyChanged
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
private List<Server> _lst_Servers = new List<Server>();
public List<Server> Lst_Servers
{
get
{
if (_lst_Servers == null)
_lst_Servers = new List<Server>();
return _lst_Servers;
}
set
{
_lst_Servers = value;
if (PropertyChanged != null)
{
OnPropertyChanged("Lst_Servers");
}
}
}
و در Constructor :
DataContext=this;
ولی زمانی که به پراپرتی Lst_Servers آیتمی اضافه می کنم ، دیتاگریدم آپدیت نمی شود !
یه جا سرچ کردم گفته بود خود کلاسی که ازش پراپرتی ساختی (در مثال من کلاس Server ) رو هم باید از اینترفیس INotifyPropertyChanged به ارث ببری ، ولی اون کار رو هم کردم نشد !!!
راهنمایی لطفا ..