gpt4 book ai didi

c# - WPF DataGrid,如何在自定义 DataGridColumn 上绑定(bind)属性

转载 作者:行者123 更新时间:2023-11-30 17:01:47 29 4
gpt4 key购买 nike

我有一个像这样的 WPF DataGrid:

<DataGrid x:Name="dtgAgent"
ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=Window, AncestorLevel=1}, Path=DataContext.AgentList}"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Agent Name" MaxWidth="140" MinWidth="80" SortDirection="Ascending" Width="100" CanUserReorder="False" IsReadOnly="True" Binding="{Binding Path=AgentName}"/>
<DataGridTextColumn Header="Status" Binding="{Binding Path=Status}" MinWidth="60"/>
<DataGridCheckBoxColumn CanUserReorder="False" CanUserResize="False" CanUserSort="False" Header="Use" MaxWidth="40" MinWidth="40" Binding="{Binding Path=Used}" />
<DataGridTemplateColumn CellTemplate="{StaticResource sliderTemplate}" CanUserReorder="False" CanUserResize="False" Width="140" Header="Work Balance (%)"/>
</DataGrid.Columns>
</DataGrid>

它的 ItemSource 属性绑定(bind)到我的 DataContext 中的 Agent 的 List,这是 Agent 类的代码:

public class Agent
{
public String AgentName { get;set; }
public String Status { get; set; }
public Boolean Used { get; set; }
public Int16 WorkBalance { get; set; }

public Agent(String AgentName)
{
this.AgentName = AgentName;
Status = "Online";
Used = true;
WorkBalance = 50;
}
}

此类的每个属性都绑定(bind)到我的 DataGrid 的一列。我在绑定(bind)到自定义列的 WorkBalance 属性时遇到问题,这是我的列模板:

<DataTemplate x:Key="sliderTemplate">
<Grid>
<Slider HorizontalAlignment="Stretch" Minimum="0" Maximum="100"
Value="{Binding Path=ItemSource.WorkBalance,RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
</Grid>
</DataTemplate>

我不知道如何将 Slider 的 Value 属性绑定(bind)到列表的 WorkBalance 属性。有什么建议 ?

最佳答案

DataTemplate 中的DataContext 是项,因此您可以直接 绑定(bind)到WorkBalance:

Value="{Binding Path=WorkBalance}"

关于c# - WPF DataGrid,如何在自定义 DataGridColumn 上绑定(bind)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20611130/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com