observable 컬렉션을 사용하여 내 UI를 업데이트하려고하지만 내 경우에는 발생하지 않습니다. 심지어 "Gui 스레드에 데이터 마샬링"을 사용하여 업데이트하려고했으나 작동하지 않습니다. 나를 위해. 내 코드를 updatig 여기 내게 어디 잘못 생각하는지 알려 주시기 바랍니다. XAMLObservableCollection ObservableCollection GUI를 업데이트하지 않습니다
<DataGrid ItemsSource="{Binding BindFiles, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectionMode="Single" CanUserSortColumns="False" x:Name="dataGrid1" BorderBrush="Transparent" Canvas.Left="1" Canvas.Top="50" Background="{Binding ElementName=gd,Path=Background}"></datgrid>
재산
ObservableCollection<ProjectTabModel> _BindFiles;
public ObservableCollection<ProjectTabModel> BindFiles
{
get
{
return _BindFiles;
}
set
{
_BindFiles = value;
RaisePropertyChanged(()=>BindFiles);
}
}
뷰 모델은
#region BindProjectFiles
public void Bindfiletab()
{
List<ProjectTabModel> obj = ProjectTabModel.FilesBinding(GlobalProjectID);
ObservableCollection<ProjectTabModel> obsrvbl = new ObservableCollection<ProjectTabModel>(obj);
if (obsrvbl.Count > 0)
{
BindFiles.Clear();
foreach (var item in obsrvbl)
{
BindFiles.Add(item);
}
}
else
{
NoFileFound = "No File found";
}
}
private class DragOverEvent : ProjectTabViewModel, ICommand
{
public event EventHandler CanExecuteChanged;
public void Execute(object sender)
{
GalaSoft.MvvmLight.Threading.DispatcherHelper.CheckBeginInvokeOnUI(() =>
{
//my code stuff here
}
});
}
코드가 엉망입니다. 당신은 또한'ICommand'이지만'... Event'라는 이름의 뷰 모델 클래스를가집니다. 뷰 모델에서 MVVM에 대해 100 % 움직이는'LblMessageForFiles' UI 컨트롤을 처리하고 있으므로 MVVM에 대해 전혀 알지 못합니다. 프로젝트를 계속하기 전에 WPF 및 MVVM에 대한 독서 및 학습으로 돌아가는 것이 좋습니다. 우리가 여기에서 당신을 도울 수있는 지식이 너무 많이 부족합니다 ... 적어도 질문을하기 전에 기초를 배워야합니다. – Sheridan
@Sheridan 우리 연구에 따르면 우리가 바라는 무엇인가하고 싶다면 View의 속성을 만들고보기에 바인딩합니다. 여기 i ahev 속성 인 "LblMessageForFiles"를 사용하고 있습니다. 그러나 문제는 내가 있습니다. 새 항목 UI를 추가 한 후 UI가 새로 고침되지 않습니다. 그 밖의 내용은 언더 북 없습니다. –
* 그 밖의 무엇을 당신이 이해하지 못합니다 * ... 나 ??? 농담하니? 'System.Windows.Visibility enum'은 UI와 관련이 있으며보기 모델에 속하지 않습니다. 그리고 왜'LblMessageForFiles'가 UI 요소라고 가정 했습니까? 기묘한 이유 때문에 이름에'Lbl' 접두사를 추가했기 때문에 코드가 엉망입니다. – Sheridan