我有一个包含在UserControl中的WPF DataGrid。
在用户控件的ViewModel中,我定义了以下内容:
private Visibility _ColumnVisibility;
public Visibility ColumnVisibility
{
get { return _ColumnVisibility;}
set {this._ColumnVisibility= value;
OnNotifyPropertyChanged("ColumnVisibility");}
}
XAML中的我的列定义如下所示:
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding UserCode}"
Header="UserCode"
Visibility="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=ColumnVisibility}"/>
</DataGrid.Columns>
我在运行时收到以下异常:
System.Windows.Data错误:4:找不到绑定源 参考&#39; RelativeSource FindAncestor, AncestorType =&#39; System.Windows.Controls.UserControl&#39 ;, AncestorLevel =&#39; 1&#39;&#39 ;. BindingExpression:路径= ColumnVisibility; 的DataItem = NULL;目标元素是&#39; DataGridTextColumn&#39; (的HashCode = 21737301);目标财产是“可见性”&#39; (类型 &#39;能见度&#39)
将DataGrid列可见性绑定到包含UserControl的ViewModel中定义的属性的最佳方法(最简单)是什么?
答案 0 :(得分:1)
我在这里通过 AnjumSKhan 在SO中找到了一个优雅的解决方案: Python - PYTHONPATH in linux
<input type="hidden" class="form-control" id="name" onChange='runScript(this.value)' value="test value">
<script>
function runScript(value) {
console.log('value--->' + value);
}
//get init value
var initValue = document.getElementById('name').value;
//init
window.onload = runScript(initValue);
</script>