【发布时间】:2018-03-15 15:51:28
【问题描述】:
我有一个“A”类和“VisibilityStateProvider”类,每当 A 类的任何键在那时发生变化时,我都会调用 VisibilityStateProvider 的 NotifyVisibilityChanged 但 GetVisibilityValue(key) 方法永远不会被调用。并且可见性不会在 UI 上得到更新。
提前感谢您的帮助!
public class A: IDictionary<string, object>, INotifyPropertyChanged
{
public VisibilityStateProvider VisibilityProvider { get; set; }
public A()
{
VisibilityProvider = new VisibilityStateProvider(this);
}
}
public class VisibilityStateProvider : IPropertyStateProvider
{
private A A;
public VisibilityStateProvider(A a)
{
A= a;
}
public bool this[string key]
{
get
{
return GetVisibilityValue(key);
}
}
private bool GetVisibilityValue(string key)
{
//returns true or false on basis of some condition.
}
public void NotifyVisibilityChanged(string key)
{
var a= $"Item[{key}]";
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(a));
}
}
public interface IPropertyStateProvider : INotifyPropertyChanged
{
bool this[string key] { get;}
}
//xaml
<TextBox Text="{Binding A[mf_number1], Mode=TwoWay}" Visibility="{Binding A.VisibilityProvider[mf_number1],Converter={StaticResource BoolToVisibilityConverter}}" ></TextBox >
【问题讨论】:
标签: c# xaml data-binding uwp uwp-xaml