를 업데이트하지 않습니다 바인딩 내 DataGrid
입니다 :WPF DataGrid에 여기
<DataGrid x:Name="MoonMining"
ItemsSource="{Binding MarketData.MoonMinerals, ElementName=window}">
<DataGrid.DataContext>
<local:MoonMineral/>
</DataGrid.DataContext>
<DataGrid.Columns>
.. Yes i have columns and they are irrelevant to my question .
</DataGrid.Columns>
</DataGrid>
MarketData
내 프로그램 로직의 대부분을 포함하는 클래스입니다.
public class MarketData
{
private ObservableCollection<MoonMineral> _moonMinerals = new ObservableCollection<MoonMineral>();
public ObservableCollection<MoonMineral> MoonMinerals
{
get { return _moonMinerals; }
set { _moonMinerals = value; }
}
}
을 그리고 여기 내 MoonMineral
클래스의 : MoonMinerals
은 해당 클래스에 정의되어
[NotifyPropertyChanged]
public class MoonMineral
{
public MoonMineral()
: this("Def", "Def")
{
}
public MoonMineral(string name, string rarity)
{
Name = name;
Rarity = rarity;
}
public string Name { get; set; }
public double Price { get; set; }
public double Volume { get; set; }
public string Rarity { get; set; }
public double TransportVolume { get; set; }
public double TransportCosts { get; set; }
public double GrossProfit { get; set; }
public double NetProfit { get; set; }
}
당신이 볼 수 있듯이, 내 코드를 취소 PostSharp를 사용하고 있지만 수동으로 INotifyPropertyChanged
I를 구현할 때 같은 문제가있다.
DataGrid
자체적으로 업데이트되지 않는다는 것입니다, 내가 수동으로
MoonMinerals
수정하는 방법이 전화를해야 :이 거래의 큰 아니라는 것을 알고
var bindingExpression = MoonMining.GetBindingExpression(ItemsControl.ItemsSourceProperty);
if (bindingExpression != null)
bindingExpression.UpdateTarget();
을하지만, 마침내 xaml을 사용하여 데이터를 ui에 완전히 바인딩하려고했습니다. 이전의 모든 시도는 데이터를 업데이트 할 때마다 DataGrids
ItemsSource
속성을 설정하는 것과 관련이 있습니다.
'MoonMinerals' 속성을 변경하고'Yes '인 경우'MoonMineral' 속성과 같은 'PropertyChanged' 이벤트를 발생 시키시겠습니까? – dkozl
MarketData가 .. 의 위치를 이해할 수 없습니다. 그리고 아이템 원본을 ElementName = window에 바인딩하는 이유는 무엇입니까? –
@dkozl 저에게 PostSharp를 사용하고 있습니다. 그렇지만 수동으로 또한 시도했지만 작동하지 않았습니다. – Krzaku