-1
그래서 중첩 된 클래스의 속성에 대한 경로를 설정할 수 없어서 데이터 트리거가 발생하는 데 문제가 있습니다. 내가 접근에 노력하고있어 속성입니다 여기내 경로에 중첩 클래스에있는 속성을 지정하는 방법은 무엇입니까?
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGridRow}}, Path=Item.ColWarning.HasWarning, UpdateSourceTrigger=PropertyChanged}" Value="True">
그리고 :이처럼 내 트리거가 현재 모습입니다
public class Column {
public Warning ColWarning = new Warning();
//other stuff happens in this class
public class Warning : BaseModel
{
private const string ChangedLength = "Column length will also be changed in tables: ";
public bool HasWarning { get { return _warning == null ? false : true; } }
private string _warning;
public string WarningMessage { get { return _warning; } }
public void ValidateCol(Column col)
{
_warning = "something";
NotifyPropertyChanged("HasWarning");
//actual validation stuff happens here
}
}
}
이 경우에서, WPF 경로의 항목 열을 말한다 . 또한 경고 클래스를 제거하고 열 클래스의 속성을 포함하면 올바르게 작동한다는 것을 알고 있습니다. 이 경우 내 경로가 Item.HasWarning으로 변경되어 작동합니다. 어떤 빛이라도이 문제에 흘릴 수 있다면 고맙겠습니다!
public Warning ColWarning = new Warning();
Binding
ColWarning
이 필드보다는 속성이 있다는 것이다처럼
을'ColWarning'은 필드입니다. {get; set;}을 사용하여 속성을 만들어보고 작동하는지 확인하십시오. 필드에만 바인딩 할 수없고 속성에만 바인딩 할 수 있습니다. INotifyPropertyChanged를 구현하지 않았으므로 컨트롤이 채워진 후에도 변경 내용이 표시되지 않습니다. –
감사합니다. 또한 코드에 NotifyPropertyChanged를 포함하는 것을 잊어 버렸지 만 솔루션에서 구현했습니다. –
쿨, 당신은 그저 속성화를 잘해야합니다. –