C# WPF:更改一个更改的数据模板
在我的Wpf应用程序中,我有两个数据模板。DefaultDataTemplate和EditableDataTemplate Xaml: 下一行用于将条目过帐到Web帐户-C# WPF:更改一个更改的数据模板,c#,wpf,datatemplate,edit,C#,Wpf,Datatemplate,Edit,在我的Wpf应用程序中,我有两个数据模板。DefaultDataTemplate和EditableDataTemplate Xaml: 下一行用于将条目过帐到Web帐户- Globals._globalController.harvestManager.postHarvestEntry(item); 请提出一些建议,我应该如何继续?您可以在类Harvest\u Timesheetry中添加一个属性“DirtyFlag”,该属性指示至少一个值已更改 public class Harvest_Ti
Globals._globalController.harvestManager.postHarvestEntry(item);
请提出一些建议,我应该如何继续?您可以在类Harvest\u Timesheetry中添加一个属性“DirtyFlag”,该属性指示至少一个值已更改
public class Harvest_TimeSheetEntry
{
public bool DirtyFlag {get; private set;}
public void Reset()
{
DirtyFlag = false;
}
public DateTime StartValue
{
get { return _startValue; }
set
{
_startValue = value;
// in each of the modifyable Properties add this
DirtyFlag = true;
}
}
(...)
}
在按钮事件处理程序中,检查此标志:
private void EditButton_Click(object sender, RoutedEventArgs e)
{
foreach (Harvest_TimeSheetEntry item in listBox1.Items)
{
if (item.isSynced)
{
item.Reset();
item.isSynced = false;
listBox1.ItemTemplate = (DataTemplate)this.FindResource("EditableDataTemplate");
this.EditButton.Content = "Done Editing";
}
else
{
listBox1.ItemTemplate = (DataTemplate)this.FindResource("DefaultDataTemplate");
this.EditButton.Content = "Edit";
if(item.DirtyFlag)
{
Globals._globalController.harvestManager.postHarvestEntry(item);
item.Reset();
System.Windows.MessageBox.Show("Entry posted");
}
}
}
}
public class Harvest_TimeSheetEntry
{
public bool DirtyFlag {get; private set;}
public void Reset()
{
DirtyFlag = false;
}
public DateTime StartValue
{
get { return _startValue; }
set
{
_startValue = value;
// in each of the modifyable Properties add this
DirtyFlag = true;
}
}
(...)
}
private void EditButton_Click(object sender, RoutedEventArgs e)
{
foreach (Harvest_TimeSheetEntry item in listBox1.Items)
{
if (item.isSynced)
{
item.Reset();
item.isSynced = false;
listBox1.ItemTemplate = (DataTemplate)this.FindResource("EditableDataTemplate");
this.EditButton.Content = "Done Editing";
}
else
{
listBox1.ItemTemplate = (DataTemplate)this.FindResource("DefaultDataTemplate");
this.EditButton.Content = "Edit";
if(item.DirtyFlag)
{
Globals._globalController.harvestManager.postHarvestEntry(item);
item.Reset();
System.Windows.MessageBox.Show("Entry posted");
}
}
}
}