私はこのタイプの質問が何度も尋ねられていることを知っています。しかし、私はInotifyPropertyなどを使用せずにこれを達成しようとしています。モデルからデータを表示するための単純なコードが必要です。 このため、次の方法論を使用してDatagridをバインドしようとしています。MVVmでWPFを使用してDataGridをバインド
public class PrimaryModel
{
private int _id;
public int ID
{
get { return _id; }
set { _id = value; }
}
private string _userName;
public string UserName
{
get { return _userName; }
set { _userName = value; }
}
private string _password;
public string Password
{
get { return _password; }
set { _password = value; }
}
private DateTime _createdDateTime;
public DateTime CreatedDateTime
{
get { return _createdDateTime; }
set { _createdDateTime = value; }
}
private DateTime _lastLoginDateTime;
public DateTime LastLoginDateTime
{
get { return _lastLoginDateTime; }
set { _lastLoginDateTime = value; }
}
private bool _isActive;
public bool IsActive
{
get { return _isActive; }
set { _isActive = value; }
}
}
AのViewModel:
public class PrimaryViewModel
{
private ObservableCollection<PrimaryModel> _UsersList;
public PrimaryViewModel()
{
_UsersList = new ObservableCollection<PrimaryModel>
{
new PrimaryModel { ID=1,UserName="Raghava",Password="Something",CreatedDateTime=DateTime.Now,LastLoginDateTime=DateTime.Now,IsActive=true }
};
}
public ObservableCollection<PrimaryModel> Users
{
get { return _UsersList; }
set { _UsersList = value; }
}
}
そして、XAMLファイル:私はViewModelにを通じて基本的なIDおよびユーザ名を表示するには、データグリッドをバインドするにはどうすればよい
<Window x:Class="Sample4.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:Sample4"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid Name="usersData" ItemsSource="{Binding Source=_UsersList}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=ID}" />
<DataGridTextColumn Binding="{Binding Path=UserName}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
は私がモデルを持っています?
私はMVVMパターンでWPFを学習してみませんか午前主題についての知識があまりない。ですから、基本的には、データグリッドにデータを取り込もうとしています。私は自分の提案に従ってコードを更新しようとしましたが、まだ出力を見ることができません。 – raghava
私の答えに書いたように:あなたのビューのDataContextも設定する必要があります。あなたはそれをしましたか? –
MightyBadaboomが言ったのは... MainWindow.xaml.csに行き、次にコンストラクタ 'public MainWindow()に移動します。 { InitializeComponent(); this.DataContext = new PrimaryViewModel(); } ' – Peter