我有SyncFusion的C#WPF版本www.example.com,当我运行我的程序时,我的绑定工作(如果我将布尔值设置为true,则列隐藏,如果我将其设置为false,则列可见)。19.4.0.56 in C# WPF and my Binding works when I run my program (if I set the boolean to true, the column is hidden, if I set it to false, it is visible).
我的问题是,当我更新它。我的SfDataGrid不适应。
下面是我的代码:
- 属性布尔值**
public bool UserExpertValues
{
get => _userExpertValues;
set
{
if (value != _userExpertValues)
{
SetProperty(ref _userExpertValues, value);
_userExpertValues = value;
RaisePropertyChanged(nameof(UserExpertValues));
}
}
}
- 列(网格文本列)**
<chart:GridTextColumn MappingName="{Binding ColumnsText[2], Converter={StaticResource TranslationConverter}}" IsHidden="{Binding UserExpertValues, Mode=TwoWay}">
我可以确保我的布尔属性的值被改变了。它在ShowHideColumns()方法中被改变了。
1条答案
按热度按时间s8vozzvw1#
默认情况下,MappingName是一个字符串属性,它不是可绑定属性(依赖关系属性)。在您的方案中,您尝试将其用作依赖关系属性(bindable属性),这就是为什么列不能正确填充的原因。可以将基础属性名称定义为MappingName,如果要更改标题文本,则可以使用converter for定义绑定GridColumn的HeaderText属性下面提到了代码片段,
DataGrid的列定义不是SfDataGrid可视化树的一部分,因此无法将SfDataGrid DataContext与GridColumn绑定。但是,可以通过在资源内定义ViewModel(DataContext)来克服此问题,并且可以使用StaticResource绑定将ViewModel绑定到GridColumn,如下面的代码示例所示。
Sample demo Link