У меня есть следующие datagrid
:заголовка DataGrid WPF не обновляется
<DataGrid ItemsSource="{Binding Clients}" AutoGenerateColumns="False" x:Name="control" HeadersVisibility="Column">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Id}" Header="{Binding DataContext.Localization.Id, RelativeSource={RelativeSource AncestorType={x:Type Grid}}}" />
<DataGridTextColumn Binding="{Binding Name}" Header="{Binding DataContext.Localization.Name, ElementName=control}" />
</DataGrid.Columns>
</DataGrid>
В моих ViewModel
У меня есть объект локализации, содержащие все строки пользовательского интерфейса, загруженный из Resx:
public class ClientListLocalization : LocalizationBase
{
private string _id;
private string _name;
public string Id
{
get { return _id; }
set { _id = value; RaisePropertyChanged(); }
}
public string Name
{
get { return _name; }
set { _name = value; RaisePropertyChanged(); }
}
internal override void Localize()
{
Id = Resources.clientview_id;
Name = Resources.clientview_name;
}
}
И моя модель обзора (упрощенная)
public class ClientListViewModel
{
public new ClientListLocalization Localization { get; set; }
}
Но в моей заявке, (с использованием RelativeSource
) или вторым способом (с использованием ElementName
)
Любые подсказки?
Что такое локализация здесь в DataContext.Localization.Id? – Vijay
@Vijay: экземпляр ClientListLocalization, содержащийся в модели представления, используемой как datacontext. ViewModel - это фактически ClientListViewModel –