datagrid绑定viewmodel后 ObservableCollection add数据,前台view不刷新。
XML=>
<DataGrid x:Name="ReportNows" HorizontalAlignment="Left" Height="330" VerticalAlignment="Top" Width="492" Background="White" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" Canvas.Left="20" Canvas.Top="180" IsReadOnly="True" FontSize="20" ItemsSource="{Binding ReportNow}" SelectionMode="Single">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding ID}" Visibility="Hidden" Width=""/>
<DataGridTextColumn Header="时间" Binding="{Binding SaveTime,StringFormat='{}{0:yyyy-MM-dd HH:mm:ss}' }" Width=""/>
<DataGridTextColumn Header="工单单号" Binding="{Binding GDDH}" Width=""/>
<DataGridTextColumn Header="品号" Binding="{Binding PH}" Width=""/>
<DataGridTextColumn Header="型号" Binding="{Binding GGXH}" Width="*"/>
</DataGrid.Columns>
</DataGrid>
viewmodel=>
public static ObservableCollection<ImageModel> ReportData { get; set; } = new ObservableCollection<ImageModel>();
实体类 im = new 实体类();
im.ID = Guid.NewGuid().ToString("N");
im.GDDH = “123123123”;
ReportData.Add(im);
实体类=》
public string ID { get; set; }
public string GDDH { get; set; }
。。。。。。。
请帮忙看看哪里有问题,导致add后前台view的datagrid不更新
程序启动的时候 datagrid是有数据的,说明绑定时成功的,只是再add的时候 前台就没有任何反应了。
找到问题了,是另一个控制台程序中调用了这个viewmodel的某个属性,控制台实例化了viewmodel,导致这个viewmodel更新内容后,view不刷新。。那要怎么解决呢??控制台给这个viewmodel的某个属性赋值,是必须的。。
1
view Binding ReportNow
viewmodel 属性是ReportData
2
“是另一个控制台程序中调用了这个viewmodel的某个属性,控制台实例化了viewmodel,导致这个viewmodel更新内容后,view不刷新”
请先确认一下控制台实例化的viewmodel是不是view的viewmodel,
也就是两个实例是不是同一个实例
问题1:同楼上描述,view Binding ReportNow,viewmodel 属性是ReportData,下面统一改为 ReportNow
问题2: 声明方式不正确
//源代码
public static ObservableCollection<ImageModel> ReportData { get; set; } = new ObservableCollection<ImageModel>();
//修改为
private static ObservableCollection<ImageModel> _ReportRow = new ObservableCollection<ImageModel>();
public static ObservableCollection<ImageModel> ReportRow
{
get { return _ReportRow ; }
set { this.SetPropertyValue(ref _ReportRow , value, () => ReportRow); }
}
public class ReportRow
{
//源代码
public string ID { get; set; }
public string GDDH { get; set; }
//修改为
private string _ID;
public string ID
{
get { return _ID; }
set { this.SetPropertyValue(ref _ID, value, () => ID); }
}
private int _GDDH;
public int GDDH
{
get { return _GDDH ; }
set { this.SetPropertyValue(ref _MyProperty, value, () => GDDH ); }
}
}
在线等
– 无泪ぁ无悔 3年前哪位大神帮忙看看
– 无泪ぁ无悔 3年前