공통 코드에서 잘못된 점을 알고 싶습니다. 는 여기있다 :데이터 바인딩이 작동하지 않습니다.
namespace Morse_Mail{
public partial class MainWindow : Window
{
public ObservableCollection<Message> Messages { get; set; }
public MainWindow()
{
Messages = new ObservableCollection<Message>();
InitializeComponent();
}
// some code here
}
public class Message : INotifyPropertyChanged
{
private string subject;
private string date;
private string sender;
private string id;
public string Subject
{
get { return subject; }
set { subject = value; OnPropertyChanged("Subject"); }
}
public string Date
{
get { return date; }
set { date = value; OnPropertyChanged("Date"); }
}
public string Sender
{
get { return sender; }
set { sender = value; OnPropertyChanged("Sender"); }
}
public string ID { get; set; }
public Message(string _Subject, string _Date, string _Sender, string _ID)
{
Subject = _Subject;
Date = _Date;
Sender = _Sender;
ID = _ID;
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
}}
그리고 나는 메시지 ObserverableCollection로 목록보기의 내용을 바인딩 할. 여기 내 XAML 코드 제공 :
<Window x:Class="Morse_Mail.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="864.5" Width="1203.5" ResizeMode="NoResize" Title="Morse Mail" WindowStartupLocation="CenterScreen">
<Grid Height="830" VerticalAlignment="Top">
<ListView x:Name="ListView" HorizontalAlignment="Left" Height="704" Margin="47,39,0,0" VerticalAlignment="Top" Width="600" IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding Messages}">
<ListView.View >
<GridView AllowsColumnReorder="true">
<GridViewColumn Width="300" Header="Subject"
DisplayMemberBinding="{Binding subject}"/>
<GridViewColumn Width="150" Header="Date"
DisplayMemberBinding="{Binding date}"/>
<GridViewColumn Width="120" Header="Sender"
DisplayMemberBinding="{Binding sender}"/>
<GridViewColumn Width="20" Header="ID"
DisplayMemberBinding="{Binding id}"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
내 응용 프로그램의 작동을하지만 메시지 컬렉션에 새 항목을 추가하는 버튼을 사용하고 있으면, 그 컬렉션에 나타납니다,하지만 아무것도 창에 변경 사항이 없습니다. 내 데이터 바인딩이 작동하지 않는 이유 및 방법
아무 것도 묶지 않았습니다. 데이터 바인딩이 작동하려면보기에 바인딩해야합니다. – Oded