簡體   English   中英

WPF DataGrid,如何綁定自定義DataGridColumn上的屬性

[英]WPF DataGrid, How to bind property on custom DataGridColumn

我有一個像這樣的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屬性綁定到我的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;
    }
}

此類的每個屬性都綁定到DataGrid的一列。 我遇到了綁定到自定義列的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屬性綁定到我的列表的WorkBalance屬性。 有什么建議么 ?

DataContextDataTemplate的項目,所以你可以綁定到WorkBalance directly

Value="{Binding Path=WorkBalance}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM