![](/img/trans.png)
[英]WPF UserControl - SelectedItem of a Usercontrol DataGrid to bind to a ItemSource to DataGrid outside the UserControl
[英]WPF : Bind DataGrid Inside UserControl
我有一個用戶控件,里面將有幾個數據網格。 想要使綁定正常工作,但由於某些原因未顯示內容:
UserControls.iMRxMRDataGrid ucObj = new UserControls.iMRxMRDataGrid();
ChartDescriptiveClass.PartName="test";
ucObj.DataContext = ChartDescriptiveClass;
內部用戶控件:
public partial class iMRxMRDataGrid : UserControl
{
public iMRxMRDataGrid()
{
InitializeComponent();
DataContext = this;
}
}
xaml:
<UserControl x:Name="iMRxMRDataUC" x:Class="SPCLibrary.UserControls.iMRxMRDataGrid"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
>
<Grid >
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<DataGrid x:Name="iMRxMRDataGri" DataContext="{Binding DataContext,ElementName=iMRxMRDataUC}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding PartName}" Width="Auto" Header="PartName" IsReadOnly="True" /> <!--This will not work-->
</DataGrid.Columns>
</DataGrid>
<TextBlock Grid.Row="1" Text="{Binding Path=DataContext.PartName,ElementName=iMRxMRDataUC}" Width="40px" Height="30px"/> <!--This works-->
</Grid>
</UserControl>
該類如下所示(每個屬性一個成員):
public class ChartDescriptiveValues
{
//iMR & xMR
public string PartName { get; set; }
public int Count { get; set; }
public double Average{ get; set; }
public double LSL { get; set; }
public double USL { get; set; }
}
但是textBlock綁定有效。(添加了此功能以測試綁定是否完全正常)。
謝謝!
綁定DataGridTextColumn會將列綁定到DataGrid.ItemsSource中的屬性,因此您必須設置ItemsSource或重新考慮所需的內容。
<DataGrid x:Name="iMRxMRDataGri" ItemsSource={Binding SomeCollection} DataContext="{Binding DataContext,ElementName=iMRxMRDataUC}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding PropertyInDataModelOfSomeCollection}" Width="Auto" Header="PartName" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.