Как я могу получить доступ к элементу сетки данных через привязку в wpf? - PullRequest
0 голосов
/ 31 октября 2019

Мне нужно связать свойство SelectedItem сетки данных с именем dg_item в классе ItemList с текстовым полем на странице ItemViewMenu. Я объявил DataContext в классе ItemViewMenu следующим образом:

ItemViewMenu Menu = this;
ItemList List = PageResources.ItemListInstance;
this.DataContext = new { Menu, List };

Это PageResources.ItemListInstance:

class PageResources
{
    private static ItemList _itemListInstance;
    public static ItemList ItemListInstance
    {
        get 
        {
            if (_itemListInstance == null)
                _itemListInstance = new ItemList();
            return _itemListInstance; 
        }
    }
}

Сетка данных dg_item содержит список извведите Item, который содержит следующее свойство, к которому мне нужно получить доступ:

public class Item 
{
    private string _manufacturerName;
    public string ManufacturerName
    {
        get
        {
            return _manufacturerName;
        }
        set
        {
            if (value != null)
            {
                _manufacturerName= value;
            }
        }
    }
    ...
}

И я пытаюсь получить доступ к свойству в «ItemViewMenu.xaml» следующим образом:

<Grid DataContext="{Binding Source={StaticResource List.dg_item}, Path=SelectedItem}" Grid.Row="0"> 
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="0.3*" />
        <ColumnDefinition Width="0.7*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <TextBlock x:Name="txt_manufacturer" Grid.Row="0" Grid.Column="0" HorizontalAlignment="Left" Text="Manufacturer: " Margin="5,2" VerticalAlignment="Center" FontSize="13"/>
    <TextBox x:Name="tb_manufacturer" Text="{Binding ManufacturerName}" Grid.Row="0" Grid.Column="1" Margin="5,2" FontSize="13" IsReadOnly="True" VerticalContentAlignment="Center" MaxHeight="50" />
    ...
</Grid>

Но это не работает. Так как мне получить доступ к свойству ManufacturerName?

...